単一の switch-case にて複数 case を associated value と一緒にパターンマッチさせる
enum Something {
case one(Int)
case two(Int)
case three(Int)
}
switch something {
case one(let number), two(let number):
print("one or two: \(number)")
case let three(number):
print("three: \(number)")
}
この時、 associated value の型と変数名が一致していれば case 内で利用可能になる。
出来なかったやつ
let
は必要。参考: Patterns#Value-Binding Pattern - Documentation- Swift.org
switch something {
case let one(number), two(number):
print("one or two: \(number)")
case let three(number):
print("three: \(number)")
}