可能重复:
Scala underscore - ERROR: missing parameter type for expanded function
假设以下代码编译(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))
答案 0 :(得分: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)))