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

postfixメソッド呼び出しと呼ばれるものがあるからです。

あなたが書くとき

def x(): Int = 1
x toString

実際には次のとおりです。

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

ご覧のとおり、Scalaがメソッド名を探しているコード例と競合していますが、提供するのは文字列であるため、Scalaはそれについて不平を言います。

于 2013-03-07T01:47:19.730 に答える