【发布时间】:2017-07-02 13:40:26
【问题描述】:
我在Swift 3.1 文档中看到,您可以在if 语句中包含几个可选绑定,用逗号分隔,并且它的行为类似于AND 运算符。
假设我有两个可选属性,我想检查它们中的哪一个(或两者)不是nil,解开非零属性,然后执行一段代码.使用这个:
if let = property1, let = property2 {
// Some task to do with unwrapped property
}
只有在两个属性都被解包(AND 条件)时才执行if 语句块。但对我来说,至少有一个属性为非零就足以执行if 语句块(OR 条件)中的代码。但如果我这样做:
if property1 != nil || property2 != nil {
// Some task to do with non-nil property
}
但是我没有非 nil 属性的展开值。我希望在 if 语句代码块中提供未包装的值,以避免出现可选链接。
实现这一目标的最佳实践和最紧凑的方法是什么?
【问题讨论】:
标签: swift3 optional unwrap optional-binding