【问题标题】:scalaz.io : flatten IO[Throwable, Seq[IO[Nothing, String]]]scalaz.io : 展平 IO[Throwable, Seq[IO[Nothing, String]]]
【发布时间】:2019-05-22 11:48:00
【问题描述】:

我有IO[Throwable, Seq[IO[Nothing, String]]],我想把它变成 IO[Throwable, Seq[String]] 。知道怎么做吗?我尝试使用flatten,但我得到了奇怪的隐含缺失错误。

No implicits found for parameter asTraversable: IO[Nothing, Step] => GenTraversableOnce[B_]

谢谢!

【问题讨论】:

    标签: scala functional-programming scalaz


    【解决方案1】:

    我找到了解决办法:

    val data1: IO[Throwable, Seq[IO[Nothing, String]]]
    val data2: IO[Throwable, IO[Nothing, Seq[String]]] = data1.map(IO.sequence)
    val data3: IO[Throwable, Seq[String]] = data2.flatten
    

    一步到位:

    data1.flatMap(IO.sequence)
    

    感谢@andrey-tyukin

    【讨论】:

    • data1.flatMap(IO.sequence) 怎么样? (不确定它是否编译,没有检查它是否适用于所有差异)
    • 哦,是的,这就是我在代码中所做的,我正在一步一步详细说明。
    猜你喜欢
    • 2012-01-27
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    • 2013-03-25
    • 1970-01-01
    相关资源
    最近更新 更多