我希望将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]
https://stackoverflow.com/questions/56517934
复制相似问题