考虑 Scala 中的以下定义:
val f = ((_: Int) + 1).toString()
代码将函数文字 _ + 1 的字符串表示分配给 f,这是很自然的,除了这不是我想要的。我打算定义一个接受 int 参数的函数,将其递增 1,并返回其字符串格式。
为了消除歧义,我必须编写一个带有显式参数的 lambda 表达式:
val g = (x: Int) => (x + 1).toString()
那么我可以得出结论,占位符语法不适合复杂的函数文字吗?还是有一些规则说明函数文字的范围?似乎占位符不能嵌套在函数文字中的括号中(定义其类型所需的除外)