Swift组合逻辑

时间:2023-03-09 00:48:45
Swift组合逻辑
 我们可以组合多个逻辑运算来表达一个复合逻辑:
 if enteredDoorCode && passedRetinaScan || hasDoorKey || knowsOverridePassword {
     println("Welcome!")
 } else {
     println("ACCESS DENIED")
 }
 // 输出 "Welcome!"
 这个例子使用了含多个&&和||的复合逻辑。但无论怎样,&&和||始终只能操作两个值。所以这实际是三个简单逻辑连续操作的结果。我们来解读一下:

 如果我们输入了正确的密码并通过了视网膜扫描; 或者我们有一把有效的钥匙; 又或者我们知道紧急情况下重置的密码,我们就能把门打开进入。

 前两种情况,我们都不满足,所以前两个简单逻辑的结果是false,但是我们是知道紧急情况下重置的密码的,所以整个复杂表达式的值还是true。
 使用括号来明确优先级

 为了一个复杂表达式更容易读懂,在合适的地方使用括号来明确优先级是很有效的,虽然它并非必要的。在上个关于门的权限的例子中,我们给第一个部分加个括号,使用它看起来逻辑更明确:
 if (enteredDoorCode && passedRetinaScan) || hasDoorKey || knowsOverridePassword {
     println("Welcome!")
 } else {
     println("ACCESS DENIED")
 }
 // 输出 "Welcome!"
 这括号使得前两个值被看成整个逻辑表达中独立的一个部分。虽然有括号和没括号的输出结果是一样的,但对于读代码的人来说有括号的代码更清晰。可读性比简洁性更重要,请在可以让你代码变清晰地地方加个括号吧!