swift版本:
Apple Swift version 2.1 (swiftlang-700.1.101.6 clang-700.1.76)
Target: x86_64-apple-darwin14.5.0
1、可选绑定语句中的每一个变量都必须不为nil,if条件才为真;
2、where子句里的条件为真,if条件才为真;
3、没有绑定直接写where子句会编译错误。
if let firstNumber = Int("4"), secondNumber = Int("42"), thirdNumber = Int("33")
where firstNumber < secondNumber || secondNumber > thirdNumber {
print("\(firstNumber) < \(secondNumber)")
}
更新:
在swift 3.0中,if语句的where子句被取消掉了,直接使用逗号。而且每个变量前面都要加let。以上代码变更为:
if let firstNumber = Int("4"), let secondNumber = Int("42"), let thirdNumber = Int("33"),
firstNumber < secondNumber || secondNumber > thirdNumber {
print("\(firstNumber) < \(secondNumber)")
}
不过,在switch中,where子句还是保留着。
let strSwitch:String?
strSwitch = "2"
switch strSwitch {
case "20"?:
break
case let x where Int(x!) != nil && Int(x!)! < 10 :
print(x!)
default:
break
}
在这段代码里,where就不能被替换为逗号。