今知っていること
- 型
- クラス
- 構造体
- 構造体は値型、クラスは参照型
- SwiftについてはCoWのため別のところに代入しても何か変更を加えなければメモリを消費しないらしい
- 参照型はfor文とかでarrayの中身を取り出して処理していると気づいたら変わっているので好き
- 知らないところで変わっていると死ぬ
- objcはmutable型があったため区別は一応ついたしswiftは基本immutableで進められるから安心感がある
- クロージャは仕事じゃないと絶対に(面倒で)使わなかっただろうけど今はこれなしで処理作れない(arrayの処理をfor文でなくブロック式でやるように指導してくれた先輩には感謝しかない)
- [weak self] は正直なんとかしたい感はある
- 油断するとネストが深くなり「これがコールバック地獄か・・・」という気持ちになれたので早くaysnc await欲しい
- 関数プログラミングはよくわからないけどswiftでmap, reduce, etc. ができたおかげでtotalXXXな変数をmutableで宣言→すぐ下でfor文回すみたいなコードを作らなくてよくなってQOLが上がった。
- main関数は特別
- objcでも実はmain関数から始まっていた(クラッシュしたときに見ることが割とよくあった)。Swiftで最初から作ったアプリだと見ないなあ
- テストは大事
- nil(null)の取り扱いは面倒臭い
- ポインタはわからない
- objcでは雰囲気で使ったけどよく考えたらNSInteger系は値型だったからアスタリスクつけなくても良かったのかな?付けなくてもいいのにNSInteger *intValue にしたせいで不具合になっていた以前の現場を思い出した
- メモリ管理よくわからない