我有很多if (obj?.bool == true)
类型的检查,因为布尔值是可为空的。用Arrow替换它的更优雅的方法是什么?
答案 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
}