1
どのようにIf条件文と、このIF条件でenumのパラメータ値を取得する方法は?
switch parameter {
case .CaseA(let valueA):
print(valueA)
}
を書くのですか?これは動作しない。
if parameter == .CaseA(let valueA) {
print(valueA)
}
どのようにIf条件文と、このIF条件でenumのパラメータ値を取得する方法は?
switch parameter {
case .CaseA(let valueA):
print(valueA)
}
を書くのですか?これは動作しない。
if parameter == .CaseA(let valueA) {
print(valueA)
}
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を参照してください。
ありがとうございました。 if case A(let valueA)==パラメータ{'? – Manuel
@Manuel実際、いいえ。我々は等価性をチェックするのではなく、列挙型パターンマッチングを実行しています。ここでは、演算子 '='が前者に使用されます。 – dfri
私はさらに感銘を受けました。ありがとう – Manuel