scalaz ZIO中IO和UIO的区别

The difference between IO and UIO in 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]