Scala:在包装器中加入带有值的迭代器

Scala: join iterators with values in a wrapper

我有以下类型:ABC,所以B <: AC <: A

我需要得到像这样工作的 Iterator[A]:

在 Scala 中这样做的最佳方法是什么?

使用模式匹配和flatMap:

val itA: Iterator[A] = // ...
val itB: Iterator[B] = itA.flatMap(a => a match {
  case b: B => Iterator(b)
  case c: C => parse(c)
})