scala.Either
Either
タイプはまさにあなたが望むものでなければなりません:
def myRequest() : Either[String, MyObject] =
if (thereWasAnError)
Left("Some error message")
else
Right(new MyObject)
Either
に似てOption
いますが、2 つの可能な値のうちの 1 つを保持できます: leftまたはright。慣例により、右は OK で、左はエラーです。
派手なパターン マッチングを実行できるようになりました。
myRequest() match {
case Right(myObject) =>
//...
case Left(errorMsg) =>
//...
}
scala.Option.toRight()
同様に、それを使用Option
して翻訳することができますEither
。通常は*right* values is used for success and left for failure, I suggest using
toRight() rather than
toLeft()` から:
def myRequest() : Option[MyObject] =
if (thereWasAnError)
None
else
Some(new MyObject)
val result: Either[String, MyObject] = myRequest() toRight "Some error message"
ただし、この単純な例ではEither
、結果として直接返す方が簡単に見えます。myRequest()