如何在没有元组的情况下映射 2 个 Either 值

How to map 2 Either values without tupled

我需要取 2 个值,每个值都是 Either<Throwable, Any>,如果每个值都是 Right,则将它们组合在一起(或做任何其他事情)。

对于 arrow-kt 0.11.0 可以使用 tupled

tupled(
     "Hello".right(), 
     "Word".right()
).map { params ->
     println(params.a + params.b) //go to map ONLY IF a and b are always right
}

但由于 arrow-kt 0.12 tupled 已弃用,取而代之的是 Kotlin 的 Pair 和 Triple,因此我可以t figure out how to achieve the same without tupled`。

您可以使用Either.zip

"hello".right().zip("world".right()) { a, b -> a + b }