1

我找不到filterOrElsefilterOrOther之间的区别

的签名 filterOrElse

inline fun <A, B> EitherOf<A, B>
.filterOrElse(predicate: (B) -> Boolean, default: () -> A): Either<A, B>

并且filterOrOther

inline fun <A, B> EitherOf<A, B>
.filterOrOther(predicate: (B) -> Boolean, default: (B) -> A): Either<A, B>

我看到的不同之处在于它filterOrOther有一个lambda参数Bdefault

默认值: ( B ) -> A 与默认值: () -> A

但我认为有两个不同的功能还有另一个原因。是什么原因?它们之间有什么区别?

4

1 回答 1

3

如果predicate的结果是falsefilterOrOther则让您选择使用该参数B生成Awith defaultfilterOrElse'sdefault只是一个不B用于生成的生产者A

于 2019-02-15T22:38:06.463 回答