0

我对两者之间的区别感到困惑

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

(runs fine)

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

(throws error)

注意过滤器参数:x=>x_. 我在那个表达下,x=>x并且_是同义词。这要怎么解释?

4

1 回答 1

1

filter(_)被脱糖成x => filter(x)。查看您的地图用法:map(println(_)),它被脱糖map(x => println(x))而不是map(println(x => x)),那是不对的,不会起作用

于 2013-07-03T13:14:51.530 回答