Mar*_*eon 27 if-statement optional ios swift
看一个Swift 示例:
if let sourceViewController = sender.sourceViewController as? MealViewController, meal = sourceViewController.meal {
...
}
Run Code Online (Sandbox Code Playgroud)
该文件指出:
...代码将视图控制器分配给本地常量sourceViewController,并检查sourceViewController上的meal属性是否为nil.
问题:当用逗号分隔时,Swift是否允许你在if语句中有多个条件(如本例中的逗号后面所示MealViewController
)?
在文档中没有看到这个.
Luc*_*tti 54
你写的时候是的
if let a = optA, let b = optB, let c = optC {
}
Run Code Online (Sandbox Code Playgroud)
IF
如果所有分配都正确完成, Swift会执行唯一的主体.
该技术的另一个特点是:分配按顺序完成.
因此,只有正确分配了值a
,Swift才会尝试为其赋值b
.等等.
这允许您像这样使用先前定义的变量/常量
if let a = optA, let b = a.optB {
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下(在第二次分配中)我们正在安全使用,a
因为我们知道如果执行该代码,则a
填充了有效值.
Joa*_*son 17
是的,快速的文档有这个说法;
您可以在单个if语句中包含多个可选绑定,并使用where子句检查布尔条件:
if let firstNumber = Int("4"), let secondNumber = Int("42"), firstNumber < secondNumber && secondNumber < 100 {
print("\(firstNumber) < \(secondNumber) < 100")
}
// Prints "4 < 42 < 100"
if let firstNumber = Int("4") {
if let secondNumber = Int("42") {
if firstNumber < secondNumber && secondNumber < 100 {
print("\(firstNumber) < \(secondNumber) < 100")
}
}
}
// Prints "4 < 42 < 100"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19001 次 |
最近记录: |