我试图理解没有参数和括号的方法定义。在main方法中,最后一个不起作用。语义或语法上的解释是什么?
class X(x:Int){
def getX1() = x;
def getX2 = x;
}
object X {
def main(args: Array[String]) {
val x = new X(123)
println(x.getX1)//works
println(x.getX1())//works
println(x.getX2) //works
println(x.getX2())//does not work
}
}
答案 0 :(得分:0)
这很简单。如果你有一个用()定义的方法,你可以选择使用或不使用()来调用它。另一方面,如果你有一个没有()定义的方法,你只能在没有()的情况下调用它。对我来说,使用()来表示副作用是一种很好的做法。