使用过滤器时{}和()有什么区别?

吴彦祖

要使用过滤器功能过滤列表,如果使用{}可以,但是如果使用()则失败,但是为什么呢?

scala> c
res25: List[(Int, Int)] = List((1,0), (3,2), (5,4))

scala> d
res26: List[(Int, Int)] = List((1,0), (3,2), (5,4))

scala> val d=b.filter{case (x,y)=> y % 2 ==0}
d: List[(Int, Int)] = List((1,0), (3,2), (5,4))

scala> val d=b.filter(case (x,y)=> y % 2 ==0)
<console>:1: error: illegal start of simple expression
       val d=b.filter(case (x,y)=> y % 2 ==0)
                  ^
用户名

您没有使用简单的表达式。您的第一个表格{}是的快捷方式

scala> d.filter({case (x,y)=> y % 2 ==0})
res177: List[(Int, Int)] = List((1,0), (3,2), (5,4))

您可以删除,()但不能删除{}

编辑

case不需要使用您可以访问scala.Tuple2

scala> d.filter(t => t._2 % 2 == 0)
res182: List[(Int, Int)] = List((1,0), (3,2), (5,4))

甚至更短:

scala> d.filter(_._2 % 2 == 0)
res183: List[(Int, Int)] = List((1,0), (3,2), (5,4))

这些是可以用作的参数的简单表达式filter

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档