2016-03-27 20 views

答えて

6

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パターンに相当すると次のようにif caseを使用することができ

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

詳細については、the Language Reference - Patternsを参照してください。

+0

ありがとうございました。 if case A(let valueA)==パラメータ{'? – Manuel

+1

@Manuel実際、いいえ。我々は等価性をチェックするのではなく、列挙型パターンマッチングを実行しています。ここでは、演算子 '='が前者に使用されます。 – dfri

+0

私はさらに感銘を受けました。ありがとう – Manuel

関連する問題