如何将 Stream[IO, List[A]] 转换为 Stream[IO, A]
How to convert a Stream[IO, List[A]] to Stream[IO, A]
我想解析一个输出 A
集合的 json 文件。 Output
的签名是 IO[List[A]]
如何将此值转换为 Stream
: Stream[IO, A]
?
我可以转换为 Stream[IO, List[A]]
但这不是我想要的
fs2.Stream.eval(input).flatMap(x => fs2.Stream.apply(x))
谢谢
尝试
fs2.Stream.eval(output).flatMap(x => fs2.Stream.apply(x: _*))
What does `:_*` (colon underscore star) do in Scala?
您也可以使用 Stream.emits
,它接受 Seq
,因此 fs2.Stream.eval(output).flatMap(fs2.Stream.emits(_))
。
这比使用 varargs 和 apply 更有效,因为它避免了包装和解包序列结构 - 这在专门的原始集合的情况下可以节省很多。
我想解析一个输出 A
集合的 json 文件。 Output
的签名是 IO[List[A]]
如何将此值转换为 Stream
: Stream[IO, A]
?
我可以转换为 Stream[IO, List[A]]
但这不是我想要的
fs2.Stream.eval(input).flatMap(x => fs2.Stream.apply(x))
谢谢
尝试
fs2.Stream.eval(output).flatMap(x => fs2.Stream.apply(x: _*))
What does `:_*` (colon underscore star) do in Scala?
您也可以使用 Stream.emits
,它接受 Seq
,因此 fs2.Stream.eval(output).flatMap(fs2.Stream.emits(_))
。
这比使用 varargs 和 apply 更有效,因为它避免了包装和解包序列结构 - 这在专门的原始集合的情况下可以节省很多。