通常Switch文で使用されると思われるパターンマッチだがif
やguard
文while
にも使用される
if
let age = 8
if case 1...12 = age {
print("小学生です")
}
switch文では条件をすべて網羅しつつ、できないものはdefaultで拾う書き方をするがif文では網羅する必要がない際に使われる。
guard
let age = 23
guard case 1...20 = age else {
return
}
print("二十歳以下です")
}
while
パターンに合うまではその処理を繰り返し回す。
var nextAge = Optional(1)
while case let age? = nextAge {
if age >= 20 {
nextAge = nil
} else {
nextAge += 1
}
}