2016-03-27 66 views

回答

6

可以使用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 
} 

if case模式匹配相當於switch圖案與空(未使用)默認的情況下,例如匹配

/* switch ... */ 
switch parameter { 
case .A(let valueA): 
    print(valueA) // 42 
case _:() 
} 

有關詳情,請參閱the Language Reference - Patterns

+0

謝謝。你的意思是'如果情況.A(讓valueA)==參數{'? – Manuel

+1

@Manuel其實,沒有。我們正在執行枚舉模式匹配而不是檢查是否相等;在這種情況下,運算符「=」用於前者。 – dfri

+0

明白了,現在我更加印象深刻。謝謝 – Manuel