Разница между IO и UIO в scalaz ZIO

#scala #scalaz #zio

#scala #scalaz #zio

Вопрос:

В чем разница между IO и UIO в новой версии от ZIO, например, UIO[Long] и IO[Nothing, Long] ?

Ответ №1:

Разницы нет. Введите UIO[ A] = ZIO[Any, Nothing, A] и type 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] .