1
object Arity1 extends App{
    def say(something:String) = println(something)

    say ("this works")
    this say "this too"
    say "this shouldn't?"
}

最后一句话是有道理的,不编译的原因是什么?

4

1 回答 1

2

因为有一种叫做后缀方法调用的东西。

当你写

def x(): Int = 1
x toString

它实际上是以下内容:

def x(): Int = 1
x.toString()

如您所见,它与您的代码示例有冲突,其中 Scala 正在寻找方法名称,但您提供的却是一个字符串,因此 Scala 对此抱怨。

于 2013-03-07T01:47:19.730 回答