gpt4 book ai didi

scala - Keep in akka 流是什么意思?

转载 作者:行者123 更新时间:2023-12-03 14:11:30 27 4
gpt4 key购买 nike

我正在学习 akka 流,在代码中遇到了 Keep.left 和 Keep.right:

implicit val system = ActorSystem("KafkaProducer")
implicit val materializer = ActorMaterializer()

val source = Source(List("a", "b", "c"))
val sink = Sink.fold[String, String]("")(_ + _)

val runnable: RunnableGraph[Future[String]] = source.toMat(sink)(Keep.right)
val result: Future[String] = runnable.run()

这里的 Keep.right 是什么意思?

最佳答案

每个流处理阶段都可以产生一个物化值,可以使用 viaMat 捕获该值。或 toMat (分别与 via()to() 相对)。在您的代码片段中,使用 source.toMat(sink)表示您有兴趣捕获源和接收器的物化值和 Keep.right保持物化值的右侧(即汇)。 Keep.left将物化值保留在左侧(即源),和 Keep.both将允许您保留两者。

更多详细信息可在 Akka Streams documentation 中的相关部分获得。 .

关于scala - Keep in akka 流是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47116358/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com