Skip to content

ScalaのOption/Either/Try型

エラーを表現するときに Option など似た型があるけれど、それぞれ用途は明確に異なる。

単に「在るかどうか」を表す型。

opt match {
case None => ???
case Some(v) => ???
}

「AまたはBどちらか」を表す型。AもBも制約はないので、エラーを表すためには片方をエラーメッセージ等にするが、本来はもっと汎用的に使える。

result match {
case Left(v) => ???
case Right(v) => ???
}

成功または失敗を表現するための型。Either よりも限定的なので、使えるならこれが良い。

result match {
case Success(v) => ???
case Failure(v) => ???
}