我正在寻找一种在单个 if
语句中简洁地评估 Swift Bool
的方法,当 Bool
是可选对象的属性时:
var objectWithBool: ClassWithBool?
// ...
if let obj = objectWithBool {
if obj.bool {
// bool == true
} else {
// bool == false
}
} else {
// objectWithBool == nil
}
有没有一种方法可以将这些if
语句合并?在Objective-C中,这很容易实现,因为nil
对象可以在同一表达式中进行评估。if (objectWithBool.bool) {
// bool == true
} else {
// bool == false || objectWithBool == nil
}
objectWithBool?.bool
可以是true
,false
或nil
(== Optional<Bool>.None
),而比较== true
仅在第一种情况下产生true
。 - Martin R