Swift教程之基本运算符详解

2020-01-08 22:49:40刘景俊

在下面的例子中,第一个布尔值(hasDoorKey)为false,但第二个值(knowsOverridePassword)为true。因为两者有一个值是true,整个表达式的计算结果也为true,正确输出:Welcome!

复制代码
let hasDoorKey = false
let knowsOverridePassword = true
if hasDoorKey || knowsOverridePassword {
println("Welcome!")
} else {
println("ACCESS DENIED")
}
// prints "Welcome!"

 

复合逻辑表达式

你可以将多个逻辑运算符复合来创建更长的复合表达式:

复制代码
if enteredDoorCode && passedRetinaScan || hasDoorKey || knowsOverridePassword {
println("Welcome!")
} else {
println("ACCESS DENIED")
}
// prints "Welcome!"
相比于之前两个单独分开的运算符,本次通过多重嵌套、将我们上面的&&、|| 运算符相结合组合成一个较长的复合表达式。看起来有点饶人、其实本质还是两两相比较、可以简单地看成A && B || C || D、从左往右根据运算符优先级进行判断、注意区分开&&、||、只要牢记运算逻辑&&需要两者都为true、||则只需要一方为true则运算符正确即可解析整个复合表达式、透过现象看本质。

 

明确地括号(翻译成中文语句不连贯太特么饶人了、怒了自己理解。)

复合表达式中,我们可以添加进()使确逻辑意图更加明确,上面的例子中,我们可以在第一部分上加括号来使意义更明确。

复制代码
if (enteredDoorCode && passedRetinaScan) || hasDoorKey || knowsOverridePassword {
println("Welcome!")
} else {
println("ACCESS DENIED")
}
// prints "Welcome!"
在复合逻辑表达式中、我们可以使用括号明确地表示我们需要将几个值放在一个单独的逻辑运算中去判断得出结果、最后根据()内的结果再去与后面的值进行判断、看上面的例子、就像我们小学学加减乘除一样、如果没有括号()我们肯定是按照运算符的优先级去判断、但此时有了括号、我们需要先运算其中的逻辑运算符得到它们的值.使用括号()在符合逻辑表达式中可以更明确的你的意图。