0
var newRight;
if(either.isRight()) {
  newRight = either.getOrElse(() => throw UnimplementedError());
} else {
  return Left(either.fold((f) => f, (r) => throw UnimplementedError()))
}

我怎样才能得到任何一个的左侧并像上面的例子一样返回它?任何其他,也许更清洁的解决方案?

4

1 回答 1

1

您可以使用swap(). 它交换一个LeftRight的一部分Either

either.swap().getOrElse(() => throw UnimplementedError());

或者如果您可以将左右减少到相同的类型,则可以使用折叠。

myEither.fold(fToApplyLeft, gToApplyRight)

于 2021-09-08T10:17:15.063 回答