我想将一个函数传递给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。
答案 0 :(得分:7)
您可以使用currying
完成此操作from __future__ import absolute_import
或者,如果def multiply(a: Int)(b: Int) = a*b
myList.map(multiply(multiplier))
不是您的方法:
multiply