2013-07-03 5 views
0

나는익명 함수 pecularities는

Array(true,false).filter(x=>x).map(println(_)) 

(runs fine) 

Array(true,false).filter(_).map(println(_)) 

(throws error) 

주의 필터 인수의 차이에 의해 의아해하고있다. 나는 x=>x_이 동의어라는 표현 아래에있었습니다. 이것을 설명하는 방법?

+1

일부에 대한 내 대답보기 [여기] (http://stackoverflow.com/a/10365499/334519) 토론을 통해 여러분이 여기서 겪었던 문제점에 대해 토론 할 수 있습니다. –

+1

호기심 때문에'.map (println (_))'을 왜 실행하고 있습니까? 무언가를 부작용 목록에 매핑하는 것이 좋습니다. – KChaloux

+0

@KChaloux 나는 부작용을 사용하여 repl에 필터링 된 것을 보여주었습니다. –

답변

1

filter(_)x => filter(x)으로 지정됩니다. 귀하의지도 사용법을 찾으십시오 : map(println(_)), map(x => println(x))으로 desugared 있지만 map(println(x => x)), 아니 작동하지 않을 것입니다