将其他参数传递给map()中传递的函数

时间:2015-05-08 08:30:45

标签: scala scala-collections

我想将一个函数传递给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

现在我想在我的List上执行map(),如下所示:

myList.map(multiply)

当然这不起作用,因为map只需要一个参数(在本例中是list的元素)。

请帮助我如何将函数传递给使用其他参数的map。

1 个答案:

答案 0 :(得分:7)

您可以使用currying

完成此操作
from __future__ import absolute_import

或者,如果def multiply(a: Int)(b: Int) = a*b myList.map(multiply(multiplier)) 不是您的方法:

multiply