单参数方法调用不带括号和显式所有者对象引用

时间:2013-03-18 12:58:14

标签: scala

对于我的初学者对Scala的了解,没有任何方法可以实现最后一行。我希望我弄错了,我只是想确认一下。另外,我不明白为什么,因为编译器应该知道import语句中f方法的所有者对象。

object A { def f(s: Any) = println(s) }
import A.f
A f 1 //Works
f 2 // Does not compile

澄清有两个问题:

  1. 如何调用单个参数方法不带括号和显式所有者对象引用? (见主题。)
  2. 编译器无法理解最后一个语句的原因是什么?

1 个答案:

答案 0 :(得分:0)

object A { def f(s: Any) {println(s)} }
import A.f
A f 1 //works
f(2) // works

What are the precise rules for when you can omit parenthesis, dots, braces, = (functions), etc.?