我有一份清单
val list: List[Either[String, Int]] = List(Right(5), Left("abc"), Right(42))
结果,我想要 a Right
if 列表中的所有内容都是 a Right
else 我想要 a Left
。这听起来像列表应该有偏见(例如使用Try
代替),但让我们假设它不是或不应该是。
结果的内容Right
orLeft
将始终相同(例如,字符串,见吹) - 只有 Container 应该不同。例如,对于上面的列表,我们希望从该列表中创建一个字符串,因此结果应该是Left
like Left("Right(5) -> Left(abc) -> Right(42)")
。如果我们有另一个Right(12)
而不是Left("abc")
它应该是Right("Right(5) -> Right(12) -> Right(42)")
。
我可以手动检查列表中是否至少有一个Left
,并使用 if 进行分支以创建 aLeft
或 aRight
作为结果,但我想知道:是否有更类似于 Scala 的方式来做到这一点?