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