我的问题与Kotlin arrow-kt Flatten nested Either有点相关,但也不完全是。
我有一个要映射的列表,在这个映射中我调用了一个返回 Either 的函数。如果 Either 包含错误,我需要立即退出。
我目前有这样的事情:
fun doSomethingWithUsers(userList: List<User>): Either<SomethingBadException, List<User>> =
userList
.map {
if (!isAlreadyProcessed(it)) {
processUser(it.userId).fold(
ifLeft = {
somethingBadException -> return@doSomethingWithUsers Either.Left(somethingBadException)
},
ifRight = { processedUser ->
User.createUser(processedUser)
}
)
} else it
}.let { Either.Right(it) }
有没有替代品return@
?有没有更好的更惯用的方法来做到这一点?
我目前正在使用 v0.8.2 的 arrow-kt ,但我可能能够更新到 1.0.1
谢谢你。