我想在if let构造中满足多个约束。我知道我们可以使用“,”(逗号)来展开多个值,但它们都必须成功解包。
例如:
var str: String? = "Hello"
var x: Int? = 10
if let intValue = x, stringValue = str {
// do something here.
} else {
}
我想如果其中一个条件成功解包,那么就会执行一个块。 例如:
class CustomClass {
var x = 10
static func someValue() -> String? {
return "some"
}
}
var flag: Bool? = false
var x: Int? = 10
var status: String
在这个我希望如果customclass someValue函数或x值成功解包并且flag为true则代码执行
答案 0 :(得分:5)
您可以创建一个元组并使用如下所示的开关:
switch (str, x) {
case (.Some,.Some):
print("Both have values")
case (.Some, nil):
print("String has a value")
case (nil, .Some):
print("Int has a value")
case (nil, nil):
print("Neither has a value")
}