【问题标题】:Dartz - get left of EitherDartz - 离开 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()))
}

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

【问题讨论】:

    标签: dart functional-programming dartz


    【解决方案1】:

    您可以使用swap()。它交换了EitherLeftRight 部分

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

    如果可以将左右缩小为相同类型,则可以使用折叠。

    myEither.fold(fToApplyLeft, gToApplyRight)

    【讨论】:

    • 我无法将左右缩小为同一类型。现在我选择折叠return Left(either.fold( (f) => f, (r) => throw UnimplementedError()));。我希望实现更清洁的解决方案,但交换似乎同样混乱。不过,谢谢您的回答。
    猜你喜欢
    • 2020-09-08
    • 2022-12-01
    • 2021-01-12
    • 2021-10-22
    • 1970-01-01
    • 2021-03-26
    • 2021-12-11
    • 2021-11-10
    • 1970-01-01
    相关资源
    最近更新 更多