2

これをここで質問するか、 Programmersで質問するかはわかりませんでしたが、とにかく

Scala では、中置構文を使用してメソッド呼び出しを記述することができます。つまり、ドットと括弧を省略できます。

例として、これを行うことができます:

lst foreach println // equivalent to lst.foreach(println)

lst map _.toString当然のことながら、は に評価されると想定されますlst.map(_.toString)。これは、lst.map(x$1 => x$1.toString)

しかしlst map _.toString、repl に落とし込むと驚くべき結果が得られ((x$1) => sList.map(x$1.toString))、メソッド呼び出しが誤動作する原因と評価されます。

では、それはなぜでしょうか。a.f(b)と同等であるという単純なルールがa f b、書くときに適用されなくなったのはなぜa f _.bですか?

4

1 に答える 1