Dartz - 离开 Either
Posted
技术标签:
【中文标题】Dartz - 离开 Either【英文标题】:Dartz - get left of Either 【发布时间】:2021-11-05 01:42:55 【问题描述】:var newRight;
if(either.isRight())
newRight = either.getOrElse(() => throw UnimplementedError());
else
return Left(either.fold((f) => f, (r) => throw UnimplementedError()))
我怎样才能得到任何一个的左侧并像上面的例子一样返回它?还有其他可能更清洁的解决方案吗?
【问题讨论】:
【参考方案1】:您可以使用swap()
。它交换了Either
的Left
和Right
部分
either.swap().getOrElse(() => throw UnimplementedError());
如果可以将左右缩小为相同类型,则可以使用折叠。
myEither.fold(fToApplyLeft, gToApplyRight)
【讨论】:
我无法将左右缩小为同一类型。现在我选择折叠return Left(either.fold( (f) => f, (r) => throw UnimplementedError()));
。我希望实现更清洁的解决方案,但交换似乎同样混乱。不过,谢谢您的回答。以上是关于Dartz - 离开 Either的主要内容,如果未能解决你的问题,请参考以下文章
与 expect() 函数比较时,包含 List 的 Dartz Right 会抛出错误
Java8新的异步编程方式 CompletableFuture