0
我被區別匿名函數pecularities
Array(true,false).filter(x=>x).map(println(_))
(runs fine)
和
Array(true,false).filter(_).map(println(_))
(throws error)
通知過濾器參數之間的不解:x=>x
與_
。我的表示x=>x
和_
是同義詞。如何解釋這一點?
我被區別匿名函數pecularities
Array(true,false).filter(x=>x).map(println(_))
(runs fine)
和
Array(true,false).filter(_).map(println(_))
(throws error)
通知過濾器參數之間的不解:x=>x
與_
。我的表示x=>x
和_
是同義詞。如何解釋這一點?
filter(_)
被拆成x => filter(x)
。看看你的地圖用法:map(println(_))
,這是desugared到map(x => println(x))
,但不是到map(println(x => x))
,這是不對的,不會工作
看到我的回答[這裏](http://stackoverflow.com/a/10365499/334519)討論(和參考)有關您遇到的問題。 –
出於好奇,你爲什麼要運行'.map(println(_))'?不要認爲將某些東西映射到一系列副作用是一個好主意。 – KChaloux
@KChaloux我用副作用在repl中顯示什麼被過濾。 –