gpt4 book ai didi

scala - "lst filter isinstanceof map asinstanceof"是否有 Scala 快捷方式?

转载 作者:行者123 更新时间:2023-12-02 05:49:51 34 4
gpt4 key购买 nike

假设我有一个 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())

关于scala - "lst filter isinstanceof map asinstanceof"是否有 Scala 快捷方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22846121/

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