Stu*_*art 9 evaluation boolean optional swift
我正在寻找一种Bool
在单个if
语句中简洁地评估Swift的方法,当它Bool
是可选对象的属性时:
var objectWithBool: ClassWithBool?
// ...
if let obj = objectWithBool {
if obj.bool {
// bool == true
} else {
// bool == false
}
} else {
// objectWithBool == nil
}
Run Code Online (Sandbox Code Playgroud)
是否有办法结合这些if
陈述?在Objective-C中,这可以很容易地完成,因为nil
可以在同一个表达式中评估对象:
if (objectWithBool.bool) {
// bool == true
} else {
// bool == false || objectWithBool == nil
}
Run Code Online (Sandbox Code Playgroud)
Stu*_*art 15
啊,发现它:
if objectWithBool?.bool == true {
// objectWithBool != nil && bool == true
} else {
// objectWithBool == nil || bool == false
}
Run Code Online (Sandbox Code Playgroud)
可选的链接表达式objectWithBool?.bool
返回一个可选的Bool
.由于它是可选的,在单靠表达式if
语句将被评估true
/ false
基于可选是否包含一个值或没有.
通过使用==
操作if
语句检查可选的值,在这种情况下可能是true
,false
或nil
.