Akka stream 如何将流[T,Seq[Seq[String]],NotUsed]展平为流[T,Seq[String],NotUsed]

Akka stream 如何将流[T,Seq[Seq[String]],NotUsed]展平为流[T,Seq[String],NotUsed],akka-stream,Akka Stream,我有一个Flow[T,Seq[Seq[String]]类型的流,NotUsed] 我想用示例流所显示的方式将其展平 ev1: Seq(Seq("a", "b"), Seq("n", "m") ev2: Seq(Seq("x", "y")) 应成为以下流: ev1: Seq("a", "b") ev2: Seq("n", "m") ev3: Seq("x", "y") 使用mapConcat(标识): 印刷品 Vector(1, 2) Vector(3, 4) Vector(5, 6) 一般

我有一个Flow[T,Seq[Seq[String]]类型的流,NotUsed]

我想用示例流所显示的方式将其展平

ev1: Seq(Seq("a", "b"), Seq("n", "m")
ev2: Seq(Seq("x", "y"))
应成为以下流:

ev1: Seq("a", "b")
ev2: Seq("n", "m")
ev3: Seq("x", "y")
使用
mapConcat(标识)

印刷品

Vector(1, 2)
Vector(3, 4)
Vector(5, 6)

一般来说,使用
mapConcat
可以将事件序列展平到主流。

但仍然想知道为什么这不适用于Seq,而只适用于Vector@spaudanjo由于类型不匹配,
scala.Seq
,即
scala.collection.Seq
,它不起作用
Source.apply
要求其参数为
scala.collection.immutable.Iterable
,当然
scala.collection.Seq
,不能保证是不可变的,它不是
scala.collection.immutable.Iterable
的子类型,而实际上是不可变的
Vector
。例如,它还可以与
列表
一起使用;只是默认情况下,我通常在任何地方都使用
Vector
Vector(1, 2)
Vector(3, 4)
Vector(5, 6)