gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 21:27:17 25 4
gpt4 key购买 nike

使用filter函数过滤列表,如果使用{}可以,但是如果使用()则失败,但为什么呢?

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))

这些是简单的表达式,可以用作过滤器的参数。

关于scala - 使用过滤器时,{} 和 () 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23220588/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com