可空布尔值的Kotlin Arrow

时间:2019-03-25 19:57:03

标签: kotlin

我有很多if (obj?.bool == true)类型的检查,因为布尔值是可为空的。用Arrow替换它的更优雅的方法是什么?

1 个答案:

答案 0 :(得分:4)

假设您要查询的是Boolean?(可为空的布尔值),那么就不需要Arrow了,这种普通的Kotlin代码可以工作:

if (bool?:false) {
  // This code is run only if bool is not null and true
} else {
  // This code is run if bool is null or false
}

如果您要询问具有布尔值val属性的Object?(可为空的对象),则等效代码为:

if (obj?.bool?:false) {
  // This code is run only if obj is not null and obj.bool is true
} else {
  // This code is run if obj is null or obj.bool is false
}