Swift 実践入門のまとめ。
分からない部分の抜粋も記載し、解決できたら随時更新していきます。
なお、ここに記載している以外でも「わけわからん…」となっている部分も多々ありますが、
今は必要ない、と言い聞かせて飛ばしています。
第5章
制御構文 上から下へ流れていくプログラムの動きを変更したりすること。
理解度:60%くらいか
5.2
条件分岐
・if-let文
let a = Optional(1)
if let b = a {
print(“値は\(a)です”)
} else {
print(“値が存在しません”)
}
値は1です
・guard文
func printIfPositive() {
let a = 1
guard a > 0 else {
print(“aは0未満です”) //falseならこの部分が実行される
return //スコープ外に退出
}
print(a)
}
printIfPositive() //結果は1
・switch文…Bool型ではなく、caseを設定していくことでもっと細かい条件分岐が可能。defaultをつけることで条件に網羅性が出るが、細かく設定した方が追加で条件を設定する場合に強い。
- case パターン where 条件式(a > 10 など)…whereを使ってさらに条件を絞り込むことができる。
- break…swich文のケース実行を中断する。また「ラベル名 : switch文」で、さらに「break ラベル名」で対象のswitch文の実行を中断することができる。
- fallthrough…次のケースを実行するようにする。
5-3 繰り返し
・for 要素名 in コレクション名…コレクション名としているが、本書では「シーケンス」になっている。
・while 条件式…条件式(a > 10 など)が成り立つ限り繰り返し実行される。
・repeat 条件式…条件式に当てはまらなくても、最初の値は実行される。
var a = 1
repeat a < 1 {
print(a)
a += 1
} //結果は1
5-4 遅延実行…特定の部分を記述されている場所よりも後に実行させること。defer文など。
5-5 パターンマッチ…値などで代入させるのではなく、パターンで代入させる
・バリューバインディング…変数や定数をcaseの中に入れ、それらを代入させ条件チェックすること。
その後も様々なパターンマッチの仕様が登場しているが、細かく時間がかかりそうなのでカット。
現段階ではパターンで値などをマッチさせるため、printなどで表示させるのも「1以上10以下」などのパターンであることが多いと感じた。