var newRight;
if(either.isRight()) {
newRight = either.getOrElse(() => throw UnimplementedError());
} else {
return Left(either.fold((f) => f, (r) => throw UnimplementedError()))
}我怎么才能像上面的例子那样获取并返回其中的左边呢?还有没有其他更干净的解决方案?
发布于 2021-09-08 10:17:15
您可以使用swap()。它交换了Either的Left和Right部分
either.swap().getOrElse(() => throw UnimplementedError());
或者,如果您可以将left和right减少为相同的类型,则可以使用fold。
myEither.fold(fToApplyLeft, gToApplyRight)
https://stackoverflow.com/questions/69100425
复制相似问题