2015-01-04 2 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 

가 지금은 사용자 정의 승수 전달하려는 대신 기본 배율 을 사용하는 것 :

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

관련 문제