省略具有一个参数的方法的括号

时间:2013-08-14 16:58:22

标签: scala

我想知道,为什么这不起作用:

object test {
  def method1(a: Int) = println(a)  // println a -- doesn't work either

  method1 123
}

method1只接受参数,也就是说,可以省略括号,不是吗?

1 个答案:

答案 0 :(得分:2)

这与后缀操作发生冲突。我们来看看你的例子:

 println a 

解析器会将其解释为

 println.a

如果你能写

,那将会非常混乱
 println 123

(这是可区分的,因为123不是有效的方法名称),但现在如果用保存值的​​变量替换123,你会得到类似member a not found on println的内容