2

を指定すると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()
4

3 に答える 3

3
scala> List(()).filterNot(_.isInstanceOf[Unit])
res0: List[Unit] = List()

scala> List((),1,2).filterNot(_.isInstanceOf[Unit])
res1: List[AnyVal] = List(1, 2)
于 2013-10-10T16:53:35.030 に答える
3

パターンマッチングを使用できます:

list.filter(_ match {
   case x : Unit => false
   case x => true})
于 2013-10-10T16:49:50.650 に答える