scala - Scala lambda 中 _ 的用法

标签 scala

Possible Duplicate:
Scala underscore - ERROR: missing parameter type for expanded function

假设编译以下代码( peopleList[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/

相关文章:

scala - Play 2.0 中的默认配置导致 IOException?

scala - 如何向 SBT 项目添加示例?

java - 如何让 sbt 在发布到 Maven 存储库时用实际日期替换 SNAPSHOT?

optimization - 使用 Scala 优化代码

scala - 在Scala中逐行并发读取和处理文件

scala - Anorm 解析浮点值

scala - 如何在 Windows 中启用 SBT 远程调试?

scala - 关于 Scala 中(递归)结构类型的有趣观察

scala 光滑的 postgresql 创建表模式

java - IntelliJ IDEA 14.1.0 变得不可编辑并需要重新启动