【发布时间】:2012-01-29 08:30:22
【问题描述】:
考虑 Scala 中的以下定义:
val f = ((_: Int) + 1).toString()
代码将函数字面量 _ + 1 的字符串表示分配给 f,这很自然,只是这不是我想要的。我打算定义一个接受 int 参数的函数,将其递增 1,并返回其字符串格式。
为了消除歧义,我必须编写一个带有显式参数的 lambda 表达式:
val g = (x: Int) => (x + 1).toString()
那么我可以断定占位符语法不适合复杂的函数文字吗? 还是有一些规则说明函数文字的范围?似乎占位符不能嵌套在函数文字中的括号中(定义其类型所需的除外)
【问题讨论】:
标签: scala placeholder function-literal