这个问题在这里已有答案:
查看https://doc.akka.io/api/akka/current/akka/stream/scaladsl/Flow.html上Flow类的定义,它具有以下签名:
final class Flow[-In, +Out, +Mat]
问题是,为什么第三个参数的类型是+Mat
?我想,+Mat
只对Sink
有意义,因为Sink
消耗了这条小溪。
即使是Source
也有+Mat
:
final class Source[+Out, +Mat]
每个阶段都具有某种价值,这使您能够在使用SourceQueueWithComplete
时获得通过Source.queue
将元素推入流中的机制。
即使一个流也可以实现一些价值,但这并不常见,在这种情况下,你会看到物化价值是NotUsed
。