在对一堆类型为 Either[String, A] (其中 A 不止一种类型)的 Eithers 进行匹配之后,我想将左侧的任何字符串累积到一个列表中。
(a, b, c, d, e) match {
case (Right(a), Right(b), Right(c), Right(d), Right(e)) => {
"All good, use a, b, c, d, and e!"
}
case anythingElse => {
val strings = accLefts(anythingElse)
doSomethingWithStrings(strings)
}
}
如果我尝试.productIterator.toList
使用元组,我最终会得到 List[Any]。如果我分别处理每个失败的案例(右和左的组合),我最终会得到成倍数量的案例陈述。
如何在最后获得 List[Either[String, Any]] 以传递给我的 accLefts 调用?或者我应该做一些除了比赛之外的事情吗?