Possible Duplicate:
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))
最佳答案
是的。
您可以使用这种命令来验证这一点:
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)))
关于scala - Scala lambda 中 _ 的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11931661/