scala - scalaz ZIO中IO和UIO的区别

标签 scala scalaz zio

ZIO 新版本中的 IO 和 UIO 有什么区别,例如 UIO[Long]IO[Nothing, Long]

最佳答案

没有区别。键入 UIO[+A] = ZIO[Any, Nothing, A] 并键入 IO[+E, +A] = ZIO[Any, E, A]。所以 UIO[Long]IO[Nothing, Long] 都是 ZIO[Any, Nothing, Long] (即任何环境,没有错误和 Long 的值)。

你可以通过验证来检查这一点

implicitly[UIO[Long] =:= IO[Nothing, Long]]
implicitly[IO[Nothing, Long] =:= UIO[Long]]

编译。

UIO[A]IO[Nothing, A]

关于scala - scalaz ZIO中IO和UIO的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55116834/

相关文章:

隐式 def 中的 Scala 高级类型失败,错误为 "could not find implicit value"

scala - ZIO 流 : Which is the difference between a ZSink and a ZTransducer?

scala - 使用代数验证和捕获错误

scala - scalaz-stream 中带有 chunk 和 zipWithIndex 的令人困惑的行为

scala - 如何在 ZIO 测试中忽略套件或测试?

swing - Scala中的惯用表格单元渲染器

Scala @ 运算符

scala - Akka-如何检查收件箱中的邮件有多长时间?

scala - 以类型安全的方式将 Seq[String] 转换为 case 类

stream - 如何组合多个 Scalaz-Streams 以保留完成顺序但不强制交错?