例如,为什么你不能做以下事情?:
List(1, 2, 3).map(_ * _)
但是可以做到:
List(1, 2, 3).map(x => x * x)
在这种情况下,结果是1,4,9的列表。我理解还有其他解决这个特定问题的方法,但我主要是想了解为什么这不起作用。
答案 0 :(得分:2)
每个下划线按顺序引用一个新参数
因此_ * _
是(x, y) => x * y
的简写,而不是(x, y) => y * x
或x => x * x
。
map
采用将单个值映射到新值的函数。所以_ * _
与它不相容。
答案 1 :(得分:1)
因为map
操作只接受一个参数 - 所以您映射一个元素。您需要创建自变量乘以变量的运算符