为什么不能使用占位符语法将地图占位符与自身相乘?

  • 本文关键字:占位符 地图 语法 不能 scala
  • 更新时间 :
  • 英文 :


例如,为什么不能执行以下操作?:

List(1, 2, 3).map(_ * _)

然而,有可能做到:

List(1, 2, 3).map(x => x * x)

在这种情况下,结果是1、4、9的列表。我知道还有其他方法可以解决这个特殊的问题,但我主要只是想明白为什么这不起作用。

每个下划线都按顺序引用一个新参数
所以_ * _(x, y) => x * y的简写,而不是(x, y) => y * xx => x * x

map采用将单个值映射到新值的函数。因此_ * _与之不兼容。

因为map操作只需要一个参数-映射一个元素。您需要创建一个运算符,它将变量本身乘以

最新更新