将附加参数传递给 map() 中传递的函数

Pass additional arguments to the function passed in map()

我想将一个函数传递给 map() ,它需要使用额外的数据(例如作为参数传递给 scala 程序的数据)。

例如:

我有一个列表:

val myList = List(1,2,3,4,5)

并且乘数值作为命令行参数传递。

val multiplier = args(0) // In this example, let it be 2

我有一个函数

def multiply(a: Int, b: Int) = a*b

现在我想在我的列表上执行 map() 如下:

myList.map(multiply)

当然这是行不通的,因为 map 只需要一个参数(在本例中是列表的元素)。

请帮助我如何将函数传递给使用附加参数的映射。

您可以通过 currying

完成此操作
def multiply(a: Int)(b: Int) = a*b
myList.map(multiply(multiplier))

或者,如果 multiply 不是您的方法:

val multiplyCurried = Function.curried(multiply _)
myList.map(multiplyCurried(multiplier))