Scala 匿名函数的特殊性

Scala 匿名函数的特殊性,scala,anonymous-function,iterable,Scala,Anonymous Function,Iterable,我对两者之间的差异感到困惑 Array(true,false).filter(x=>x).map(println(_)) (runs fine) 及 请注意过滤器参数:x=>x与\uu。我的意思是,x=>x和是同义词。如何解释这一点?过滤器()被分解为x=>filter(x)。看看你的地图用法:map(println())),它被分解成map(x=>println(x)),但没有分解成map(println(x=>x)),这不正确,也不起作用关于你在这里遇到的问题的一些讨论(和参考资料

我对两者之间的差异感到困惑

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

(runs fine)


请注意过滤器参数:
x=>x
\uu
。我的意思是,
x=>x
是同义词。如何解释这一点?

过滤器()
被分解为
x=>filter(x)
。看看你的地图用法:
map(println()))
,它被分解成
map(x=>println(x))
,但没有分解成
map(println(x=>x))
,这不正确,也不起作用

关于你在这里遇到的问题的一些讨论(和参考资料)见我的答案。出于好奇,你为什么要运行
.map(println()
?不要认为将某些内容映射到副作用列表是一个好主意。@KChaloux我使用副作用在repl中显示筛选的内容。@Dominykas repl通常会为您打印结果。你唯一会遇到麻烦的时候是当你有很多值时,Repl会用省略号截断它们。在任何情况下,对于向stuff进行的副作用打印,您可能需要
.foreach(println())
(或者只是
foreach println
Array(true,false).filter(_).map(println(_))

(throws error)