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)