This question already has an answer here:
Corrupted stack/heap under debugger when simulating?

(1个答案)


5年前关闭。




我看过Swift规范,它说

逻辑AND运算符(a && b)创建逻辑表达式,其中
这两个值都必须为true,以使整体表达式也为true。

如果任何一个值为false,则整个表达式也将为false。实际上,如果第一个值是false,则第二个值甚至都不会被求值,因为它不可能使整个表达式等于true。这称为短路评估。

本示例考虑两个布尔值,并且仅在两个值都为true时才允许访问:
let enteredDoorCode = true
let passedRetinaScan = false
if enteredDoorCode && passedRetinaScan {
    println("Welcome!")
} else {
    println("ACCESS DENIED")
}
// prints "ACCESS DENIED"

它与这个问题无关,这是一个错误吗?

最佳答案

您可能在实际被评估之前就达到了断点(至少您的屏幕截图显示了这一点)。再往前走一步,您会看到c像预期的那样变成了false

在此时间点,c仅指向内存中的随机位置,调试器恰好将其解释为16

09-10 05:38
查看更多