Я хотел бы инициализировать Either
до Left
, но для этого необходимо указать тип стороны Right
(или наоборот).
Если нет, тогда Right
сторона набрана по умолчанию Nothing
, и для того, чтобы сделать что-то вроде:
List(5, 42, 7).foldLeft(Left("empty")) {
case (Left(_), i) => Right(i)
case (Right(s), i) => Right(s + i)
}
error: type mismatch;
found : scala.util.Right[Nothing,Int]
required: scala.util.Left[String,Nothing]
Я, очевидно, вынужден подробно указать тип обеих сторон Either
:
List(5, 42, 7).foldLeft(Left("empty"): Either[String, Int]) {
case (Left(_), i) => Right(i)
case (Right(s), i) => Right(s + i)
}
Аналогичным образом, я могу использовать Option.empty[Int]
для инициализации None
как Option[Int]
, будет ли способ инициализировать Left("smthg")
как Either[String, Int]
?