给定List
,我想过滤掉任何等于Unit - ()
的元素。
有没有比通过此代码更好的过滤方式?
scala> List( () ).filter( x => x != () )
<console>:8: warning: comparing values of types Unit and Unit using `!=' will
always yield false
List( () ).filter( x => x != () )
^
res10: List[Unit] = List()
答案 0 :(得分:3)
您可以使用模式匹配:
list.filter(_ match {
case x : Unit => false
case x => true})
答案 1 :(得分:3)
scala> List(()).filterNot(_.isInstanceOf[Unit])
res0: List[Unit] = List()
scala> List((),1,2).filterNot(_.isInstanceOf[Unit])
res1: List[AnyVal] = List(1, 2)
答案 2 :(得分:3)
我会这样做:
List(1, (), 4, (), 9, (), 16) filter (_ != ())
res0: List[AnyVal] = List(1, 4, 9, 16)