Control Flow
個人的には else clause は else節、 where clause は where句 と脳内和訳するので なんかもやもやする。
昨日に引き続き https://docs.swift.org/swift-book/LanguageGuide/ControlFlow.html を読んでいる。
新たに得た知見
- 繰り返す回数だけ必要な時
for _ in 1...10 {〜}
- 繰り返す増分
for t in stride(from: 0, to: 60, by: 5) {〜}
case
のStatementが空のときはコンパイルエラーcase (_, 0):
タプルの要素が何にでもマッチcase (-2...2, -2...2):
タプルでも範囲にマッチcase (let x, 0):
Value Bindingscase let (x, y) where x == y:
where句で条件記述- switch-case は網羅的なのでふつう
default
が必要だけどcase let (x, y)
のように何でもマッチするcaseがあればdefaultの替わり case (let distance, 0), (0, let distance):
2つの条件で異なるタプル要素にマッチさせる同じ型のValue Binding- switch-case で空のステートメントにしたいときは
break
入れとけ fallthrough
は次の case Statement に落ちるだけなので Value Binding して条件にマッチしたようなcaseには落とせないguard let name = ... else {〜}
のガードをすり抜けたguardブロックの外側で unwrap したname
が使える