我知道打字在 Scala 中很重要,理想情况下你可以通过使用模式匹配之类的东西来绕过类型转换或任何混乱的解决方案。但是,如果我正在遍历作为常见超类型的子类型的项目列表或项目序列,并且只想要该子类型的序列中特定子类型的项目,我无法理解我该怎么做。我不认为我可以在 a 中放置模式匹配for-comprehension
来实现这一点。
因此,例如,我有这些课程:
sealed abstract class SuperType
case class SubtypeA extends SuperType
case class SubtypeB extends SuperType
我有 aSeq[SuperType]
并且我想获得 aSeq
的SubtypeA
实例,所以 a Seq[SubTypeA]
,这样我就可以遍历它并执行SubTypeA
为所有元素提供的方法。