我找不到filterOrElse和filterOrOther之间的区别
的签名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
生成带有A
的default
的选项。 filterOrElse
的default
只是一个生产者,它不使用B
生成A
。