Scala 中的映射函数

map function in Scala

Scala 编程中使用匿名函数是很常见的事情。当我决定从两种不同的方式创建一个向量作为匿名函数的输出时 方式一: var hold1=(1 to 5).map(_*2) 方式二: var hold2=(1 to 5).map(2*) 我想知道这两个声明有什么区别?

简而言之 - 它们完全相同。 第一种方法:

var hold1 = (1 to 5).map(_*2)

让我们用另一种方式重写它来演示幕后真正发生的事情(没有语法糖)

var hold1 = (1 to 5).map(number => number.*(2))

第二种方法:

var hold2 = (1 to 5).map(2*)

再次重写:

var hold2 = (1 to 5).map(number => 2.*(number))

第一种方式是对数字 2 调用 * def,第二种方式是对数字调用 * def。

两者完全一样。您可以通过多种不同方式使用下划线字符。有关更多详细信息,请参阅此 link。

What are all the uses of an underscore in Scala?