はじめに
Arrowというライブラリを導入することでKotlinでもEitherを使うことができます
基本的な使い方
// Resultのように2種類の返却物をハンドリングできる
Either<Error, String>
either {
// ensure は条件を満たさない場合に指定した Either.Left で処理を終了する
ensure(isSuccess) { FugaError }
// raise は 指定した Either.Left で処理を終了する
raise(HogeError)
// Any.right() は Either.Right(Any) と同じ意味
"Success!".right()
}
// 返却された側はfoldでクロージャーを用いて処理できる
Any.fold(
{
it
},
{ error ->
error
}
)
さいごに
Resultに慣れてる方が多いとは思いますが、Eitherを使ってみると意外と便利で読みやすいので一度試しに触ってみるのはありだと思います