swift可选绑定,及其where子句

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就不能被替换为逗号。

你可能感兴趣的:(swift可选绑定,及其where子句)