满足if let结构中的多个约束之一

Sah*_*hil 1 swift

我想在if结构中满足多个约束.我知道我们可以使用","(逗号)来解包多个值,但它们都必须成功解包.

例如 :

var str: String? = "Hello"
var x: Int? = 10

if let intValue = x, stringValue = str {
// do something here. 

} else {

}
Run Code Online (Sandbox Code Playgroud)

我想如果其中一个条件成功解包,则会执行一个块.例如:

class CustomClass {
 var x = 10

 static func someValue() -> String? {
 return "some"
 }
}

  var flag: Bool? = false
  var x: Int? = 10
  var status: String
Run Code Online (Sandbox Code Playgroud)

在这个我想要的任何一个customclass someValue函数或x值任何成功解包和标志为真然后代码执行

bey*_*ulf 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")
}
Run Code Online (Sandbox Code Playgroud)