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 Bindings
  • case 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 が使える