【发布时间】:2015-06-01 08:13:41
【问题描述】:
我看过 Swift 规范,上面写着
逻辑 AND 运算符 (
a && b) 创建逻辑表达式,其中 两个值都必须为真,整个表达式也为真。
如果任一值为假,则整体表达式也将为假。事实上,如果第一个值为 false,则甚至不会计算第二个值,因为它不可能使整个表达式等于 true。这称为短路评估。
这个例子考虑了两个 Bool 值,只有当两个值都为真时才允许访问:
let enteredDoorCode = true
let passedRetinaScan = false
if enteredDoorCode && passedRetinaScan {
println("Welcome!")
} else {
println("ACCESS DENIED")
}
// prints "ACCESS DENIED"
与这个问题无关,这是一个错误吗?
【问题讨论】:
-
你还没有执行那一行,所以
c是未定义的。转到下一行,然后它应该是正确的。 -
通常,突出显示的行是尚未执行的行。您是否尝试过跳到下一行,所以
&&实际上会被执行?