scala – Source的类型参数是什么意思?
我正在尝试了解Akka流的Source类型,指定为
here.
不幸的是,我发现的文档和示例并没有解释每个类型参数的实际含义.我猜测Out是物化时源发出的类型.那是对的吗?什么是其他类型参数Mat? 解决方法
退房
你是对的,这是Source发出的元素的类型. 垫 它是Source的物化形式.请注意,每个阶段(Flows,Sinks等)也将实现一个值. 您可以将其描绘为在舞台运行时与舞台交互的手段.查看Akka提供的现成资源的例子是获得它的要点的好方法. > Source.single将实现NotUsed.你没有意义与源相互作用,因为它只会产生一个元素,然后完成. 当您连接不同的阶段时,请注意每个阶段都可能具有有用的物化价值.您可以使用viaMat / toMat和Keep DSL来选择要保留的内容. 查看下面示例中的类型是获取API要点的最佳方法: val source: Source[Int,MatSrc] val sink: Sink[Int,MatSnk] val matSrc: MatSrc = source.toMat(sink)(Keep.left).run() val matSnk: MatSnk = source.toMat(sink)(Keep.right).run() val (m1: MatSrc,m2: MatSnk) = source.toMat(sink)(Keep.both).run() val n: NotUsed = source.toMat(sink)(Keep.none).run() 请注意,在许多示例中您可以找到的更简洁的DSL实际上是上述的快捷方式,其中仅保留最后一级(例如,接收器)的具体化值. val mat3: Mat3 = source.viaMat(flow)(Keep.right).toMat(sink)(Keep.right).run() 是相同的 val mat3: Mat3 = source.via(flow).runWith(sink) 请参阅下面的文档以进一步阅读. http://doc.akka.io/docs/akka/2.4/java/stream/stream-quickstart.html#Materialized_values (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |