正如标题所说,我刚遇到一个if &&(AND)并,在Swift中给出相同结果的情况.我测试了下面的代码:
let a = 5
let b = 6
if a<6, b>0 {
print("should be true")
}
if a<6, b<0 {
print("should be false")
}
if a>6, b>0 {
print("should be false")
}
if a>6, b<0 {
print("should be false")
}
Run Code Online (Sandbox Code Playgroud)
它只记录:
应该是真的
所以,行为,就像是&&,我是否正确?
Sul*_*han 16
它们可以在类似的情况下使用,但这并不意味着它们完全相同.
考虑:
if (a && b) || c
Run Code Online (Sandbox Code Playgroud)
你不能写
if (a, b) || c
Run Code Online (Sandbox Code Playgroud)
甚至a && b || c不同于a, b || c.
if a, b 是这样的
if a {
if b {
...
}
}
Run Code Online (Sandbox Code Playgroud)
必须对两个表达式进行求值,true但它们仍然是两个单独的表达式.我们不应该想象&&那里.
我们为什么需要,运营商?
需要运算符将可选绑定与布尔条件组合,例如
if let a = a, a.isValid() {
Run Code Online (Sandbox Code Playgroud)
因为&&在这种情况下我们不会帮助我们.
它们的不同之处在于逗号的优先级可能最低。即,在检查逗号之前,将执行其他所有内容。
// (true || false) && false
if true || false, false {
print("I will never be executed")
}
// true || (false && false)
if true || false && false {
print("I am always executed")
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2467 次 |
| 最近记录: |