Swift 実践入門のまとめ。
分からない部分の抜粋も記載し、解決できたら随時更新していきます。
なお、ここに記載している以外でも「わけわからん…」となっている部分も多々ありますが、
今は必要ない、と言い聞かせて飛ばしています。
第3章
型(Intなど)
理解度:80%くらいか
3.2
Bool型の論理積…true or falseの世界で、2つのBool型がともにtrueの場合のみtrueと考えること。&&で記入する。
Bool型の論理和…true or falseの世界で、2つのBool型のどちらかがtrueの場合trueと考えること。||で記入する。
3.3
数値型は以下のように変更することができる。
let a : Float = 1.0
let b : Double = Double(a) //このDouble(a)の部分をイニシャライザと呼んでいる。
これはString型でもString(a)で“1.0”のように可能。
3.4
文字列リテラルでは特殊文字を使うことで改行などを可能にしている。
\n これで改行 などなど
3.5
Optional型は何となく理解している感じがする。これって「こんな設定を切り分けて作っていくのかスゲー!」って感動しそうだけど、そこまでなってない。実践で実感がわかないとダメかな。
アンラップ…値の取り出し→if-let文、??演算子、強制アンラップ
プロパティ名?、メソッド名?は、値があれば?以降のプロパティやメソッドへアクセスし、
nilならアクセスしない。
3.6
Any型について。どんな型も取れるが、四則演算などのその型でできることができなくなる。
3.7
タプル型について。複数の型を指定することができて、値を取り出すことも容易。
let tpl = (123, "ABC", true)
print(tpl.0) //123
print(tpl.1) //"ABC"
print(tpl.2) //true
3.8
キャストについて。ある型を別の型として扱う操作をキャストという。Any→IntやInt→Anyなど。
アップキャスト(具体から抽象へ)…123 as Any
ダウンキャスト(抽象から具体へ)…any as? Int もしくは any as! Int
3.9
値の比較のためのプロトコル
プロトコルとは…プロパティやメソッドなどが持つ最低限のルール。
ここでは==とComparableプロトコル(<>などの比較)
安全性を保つためにそれぞれの値にはそれぞれの型がある。Any型をどこで使うかは実践が必要。