首页 > 解决方案 > 可空布尔值的 Kotlin 箭头

问题描述

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

标签: kotlin

解决方案


假设您询问的是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
}

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

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
}

推荐阅读