如何在IF条件下获取枚举的参数值?

Man*_*uel 4 enums if-statement swift

怎么写这个

switch parameter {
case .CaseA(let valueA):
   print(valueA)
}
Run Code Online (Sandbox Code Playgroud)

作为If条件声明?这不起作用:

if parameter == .CaseA(let valueA) {
   print(valueA)
}
Run Code Online (Sandbox Code Playgroud)

dfr*_*fri 14

您可以使用if case如下

enum Foo {
    case A(Int)
    case B(String)
}

let parameter = Foo.A(42)

/* if case ... */
if case .A(let valueA) = parameter {
    print(valueA) // 42
}
Run Code Online (Sandbox Code Playgroud)

所述if case模式匹配就相当于一个switch具有空(未使用)默认的情况下,例如图案匹配

/* switch ... */
switch parameter {
case .A(let valueA):
    print(valueA) // 42
case _: ()
}
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅语言参考 - 模式.