Scala方法语法问题

时间:2011-05-23 12:11:57

标签: scala

我正在学习scala,遇到一个小问题。我想使用String方法stripMargin如下。但是我不能在这个方法上添加括号。我记得无参数方法的括号是可选的,所以这里为什么我不能添加括号?

val str=""" hello world
    |" ANd soe"
    |" to world"""

println(str.stripMargin())  // won't compile
println(str.stripMargin)  // compiles successfully

1 个答案:

答案 0 :(得分:4)

如果使用()定义没有参数的方法,则编写()是可选的。如果方法是在没有()的情况下定义的,则不允许添加()(或者更确切地说,将其解释为在返回的结果上调用apply())。

良好做法建议在没有()的情况下定义没有副作用的方法,并在有副作用时将()保留在定义站点和呼叫站点。