Swift if语句 – 用逗号分隔多个条件?
看一个Swift的例子 :
if let sourceViewController = sender.sourceViewController as? MealViewController, meal = sourceViewController.meal { ... }
该文件指出:
…代码将该视图控制器分配给本地常量sourceViewController,并检查sourceViewController上的用餐属性是否为零。
问题:Swift是否让你在用逗号隔开的if语句中有多个条件(如本例中的MealViewController
之后的逗号)?
在文档中没有看到这个。
是的,当你写
if let a = optA, let b = optB, let c = optC { }
只有所有的任务都正确完成, Swift才会执行IF的主体。
更多
该技术的另一个特点是分配按顺序完成。
所以只有当一个值被正确地赋值给a
,Swift才会尝试给b
赋值。 等等。
这允许你使用这个以前定义的variables/常量
if let a = optA, let b = a.optB { }
在这种情况下(在第二个任务中),我们正在安全地使用a
因为我们知道如果代码被执行,那么a
已经填充了一个有效的值。
是的, 迅速的文档有这个说法。
您可以在单个if语句中包含多个可选绑定,并使用where子句来检查布尔条件:
if let firstNumber = Int("4"), secondNumber = Int("42") where firstNumber < secondNumber { print("\(firstNumber) < \(secondNumber)") } // prints "4 < 42"