看一个Swift 示例:
if let sourceViewController = sender.sourceViewController as? MealViewController, meal = sourceViewController.meal { ... }
该文档指出:
…代码将该视图控制器分配给本地常量sourceViewController,并检查sourceViewController上的餐属性是否为nil。
问题:用逗号分隔时,Swift是否在if语句中让您有多个条件(例如,在此示例中,后面有逗号MealViewController)?
MealViewController
还没有在文档中看到这一点。
是的,当你写
if let a = optA, let b = optB, let c = optC { }
IF只有 正确完成所有分配, Swift才会执行的主体。
IF
该技术的另一个特点:分配是按 顺序 完成的。
因此,只有在正确分配值后a,Swift才会尝试将值分配给b。等等。
a
b
这样您可以像这样使用先前定义的变量/常量
if let a = optA, let b = a.optB { }
在这种情况下(第二次分配),我们可以安全使用,a因为 我们知道 如果执行了该代码,则该代码将a被填充有效值。