作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在研究 ZIO Streams,使用库的 1.0.9 版 zio-streams
.
我找不到任何可以说明 ZSink
之间差异的引用资料和一个 ZTransducer
.
有什么不同?
最佳答案
A ZSink
用于消费来自 ZStream
的元素.反过来,接收器将导致整个流的物化运行并产生一个值。
A ZTransducer
是一个有状态的函数,它处理流中的数据块,与 ZSink
形成对比。它的处理永无止境。
如果我们看一个简单的例子:
import zio.stream.{ ZSink, ZStream }
import zio.stream.ZTransducer.{ splitLines, utf8Decode }
import java.nio.file.Paths
ZStream
.fromFile(Paths.get("/foo"), chunkSize = 1024 * 4)
.transduce(utf8Decode >>> splitLines)
.run(ZSink.foreach(zio.console.putStr))
我们可以看到新增的
ZStream
编码基于块,并使用
transduce
与
utf8Decode
它将一大块字节解码为字符串,然后按行拆分它们。最后,我们使用
.run
方法并提供
ZSink
它向控制台发送数据,逐个元素。
关于scala - ZIO 流 : Which is the difference between a ZSink and a ZTransducer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68336735/
我正在研究 ZIO Streams,使用库的 1.0.9 版 zio-streams . 我找不到任何可以说明 ZSink 之间差异的引用资料和一个 ZTransducer . 有什么不同? 最佳答案
我是一名优秀的程序员,十分优秀!