kotlin - Arrow的filterOrElse和filterOrOther有什么区别?

标签 kotlin functional-programming arrow-kt

我找不到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

default: (B) -> A vs default: () -> A



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

最佳答案

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

关于kotlin - Arrow的filterOrElse和filterOrOther有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54716382/

相关文章:

android - 无法使用equalTo()查询Firebase检索任何值

javascript - 每个 for/while 循环都可以替换为 forEach、map、reduce、filter 吗?

kotlin - 从Kotlin箭头的任何一种类型中提取值并将其分配给const

java - validator ,Java 到 Kotlin 的翻译不正确

generics - 处理Array <T>或IntArray的函数

纯C中的回调函数

javascript - 将对象从数组 A 移动到数组 B. Ramda.js

android - 在哪里执行 Arrow.io IO.runUnsafeSync() ? ViewModel 还是 Activity/Fragment?

android - 如何使用 Arrow 创建自己的数据类型

java - 我的巴蒂斯。结果映射和属性