[英]Is there a Scala shortcut for “lst filter isinstanceof map asinstanceof”?
假設我有一個List [T],其中E擴展為T.我想得到列表中的所有E。 我必須做的事情如下:
val l = list filter {_.isInstanceof[E]} map {_.asInstanceOf[E]}
有更好的方法嗎?
謝謝
你在尋找collect
:
scala> trait Quux
defined trait Quux
scala> case class Bar() extends Quux
defined class Bar
scala> case class Baz() extends Quux
defined class Baz
scala> val l = List(Bar(), Baz())
l: List[Product with Serializable with Quux] = List(Bar(), Baz())
scala> l.collect { case bar:Bar => bar }
res1: List[Bar] = List(Bar())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.