2015-01-04 68 views
2

我试图在列表中斯卡拉像进行乘法运算:我们可以使用list.map调用具有多个参数的方法吗?

val list = List(1,2,3,4,5) 
    list.map(_*2) 

    res0: List[Int] = List(2, 4, 6, 8, 10) // Output 

现在,我已经创建了一个单独的方法进行乘法运算,如:

val list = List(1,2,3,4,5) 
    def multiplyListContents(x: Int) = { 
    x * 2 
    } 

    list.map(multiplyListContents) 

    res1: List[Int] = List(2, 4, 6, 8, 10) // Output 

现在我想自定义的乘数通过而不是使用默认倍频2喜欢:

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

    val multiplier = 3 

    def multiplyListContents(x: Int, multiplier: Int) = { 
    x * multiplier 
    } 

    list.map(multiplyListContents(multiplier)) 

    res1: List[Int] = List(3, 6, 9, 12, 15) // Output should be this 

任何想法如何做到这一点?

回答

2
scala> list.map(multiplyListContents(_, multiplier)) 
res0: List[Int] = List(3, 6, 9, 12, 15) 

这意味着list.map(x => multiplyListContents(x, multiplier))
(有关更多信息,请参阅scala placeholder syntax)。

+0

非常感谢.. !! – mkb 2015-01-04 12:38:34

相关问题