如何将 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 更有效,因为它避免了包装和解包序列结构 - 这在专门的原始集合的情况下可以节省很多。