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?
在 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?