Scala中括号何时绝对必要?

时间:2013-08-18 14:33:46

标签: scala

我试图理解没有参数和括号的方法定义。在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
  }
}

1 个答案:

答案 0 :(得分:0)

这很简单。如果你有一个用()定义的方法,你可以选择使用或不使用()来调用它。另一方面,如果你有一个没有()定义的方法,你只能在没有()的情况下调用它。对我来说,使用()来表示副作用是一种很好的做法。