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()。它交换了EitherLeftRight 部分

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

如何在flutter中将Either Right初始化为空值

如何用js判断鼠标离开当前页面

在 IE11 中离开全屏

Bot 在离开前未完成播放音频