Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala中的漂亮过滤器形式_Scala_Filter - Fatal编程技术网

Scala中的漂亮过滤器形式

Scala中的漂亮过滤器形式,scala,filter,Scala,Filter,在Scala中,我创建了一个列表,然后根据类条件对其进行过滤: val list: List[MyObj] = // fill in with objects that extend MyObj, one of them is class A val list2 = list filter ({ case A() => false case _ => true }) 是否可以以更简洁的形式编写上述筛选器?您可以尝试使用isInstanceOf方法: list filter (_.i

在Scala中,我创建了一个列表,然后根据类条件对其进行过滤:

val list: List[MyObj] = // fill in with objects that extend MyObj, one of them is class A
val list2 = list filter ({ case A() => false case _ => true })

是否可以以更简洁的形式编写上述筛选器?

您可以尝试使用
isInstanceOf
方法:

list filter (_.isInstanceOf[A])

我不知道反对这种方法的建议。你指的是什么课程?嗯,使用类型匹配的主要优点是过滤器的返回类型。如果列表是一个
列表[B]
列表过滤器(u.isInstanceOf[a])
返回一个
列表[B]
。如果你做了
list.collect{case a:a=>a}
你会得到一个
list[a]
。在某些情况下可能很方便。可能是