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