2015-01-04 2 views
2

Я пытался выполнить операцию умножения на список в Scala, как:Можно ли вызвать метод с несколькими аргументами с 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

Смежные вопросы