2

重複の可能性:
Scala アンダースコア - エラー: 展開された関数のパラメーターの型がありません

次のコードがコンパイルされると仮定します (peopleは ですList[Person])。

people.map(_.address).foreach(println)

なぜ次のことを行うのですか:

people.foreach(println(_.address))

メッセージを生成する

missing parameter type for expanded function ((x$4) => x$4.address)

これは、メソッド呼び出しでワイルドカードがネストされている場合に常に当てはまります。

これは、コンパイラがコードを展開しようとするためですか?:

people.foreach(println(x => x.address))
4

1 に答える 1

2

はい。

これは、次の種類のコマンドを使用して確認できます。

echo object Test { (1 to 1).map(println(_.address)) } > test.scala
scalac -Xprint:typer test.scala

結果としてこれが見つかります:

intWrapper(1).to(1).map[B, That](println(((x$1) => x$1.address)))
于 2012-08-13T09:55:13.110 に答える