我找不到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具有B lambda参数default



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

最佳答案

如果predicate的结果是false,则filterOrOther为您提供了使用该参数B生成带有Adefault的选项。 filterOrElsedefault只是一个生产者,它不使用B生成A

10-04 14:52