会社で書籍を購入して頂けたので、気になるところを拾い読みしています。
Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 (WEB+DB PRESS plus)
- 作者: 石川洋資,西山勇世
- 出版社/メーカー: 技術評論社
- 発売日: 2017/02/07
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
簡単に自分の理解をブログにまとめたいと思います。
なお、最近iOS開発を始めて、Swiftを始めたばかりなので、ひよこレベルです。
今回は10章の「型の設計指針」がテーマです。
大きく以下の3つの章で構成されています。
- クラスに対する構造体の優位性
- クラスの継承に対するプロトコルの優位性
- オプショナル型の利用指針
クラスに対する構造体の優位性
「クラスに対する構造体の優位性」については、iOS開発に入る前のチュートリアルとしてDDDで掲示板を作成した際に、社内の方がコードレビューで指摘してくださり、以下のリンクを参考にすれば良いと教えていただいたのを思い出し、また記事を読んでいました。
cockscomb.hatenablog.com
この段落では以下の例が挙げられていました。
- 参照型のクラスがもたらすバグ
- 値型の構造体がもたらす安全性
- クラスを利用すべき時
構造体の不要なコピーを発生させない最適化として、内部ではコピーオンライトが使われているようです。
いわゆるプロセスをフォークして子プロセスを作った時に、子プロセスが実際に使われた際に初めてメモリを確保するというのと同じ原理です。
クラスの継承に対するプロトコルの優位性
「クラスの継承に対するプロトコルの優位性」については、以下の例が挙げられていました。
- クラスの継承がもたらす期待しない挙動
- プロトコルによるクラスの継承の問題点と克服
- クラスの継承を利用すべき時
クラスの継承を利用すべき時の中で、複数の型の間でストアドプロパティの実装を共有するというところでプロトコルエクステンションがよくわかっていないかったのですが、理解が深まった気がします。
また、理解が浅かったことを実感し、5章の型の構成要素も読み直しました。
オプショナル型の利用指針
「オプショナル型の利用指針」については、以下の例が挙げられていました。
- Optional
型(?)を利用すべき時 - ImplicitlyUnwrappedOptional
型(!)を利用すべき時 - 比較検討する時
ImplicitlyUnwrappedOptional
また、比較検討する時では、安全性を取るか、厳密性を取るかという点も参考になりました。
11章以降も頑張りたい。
詳細! Swift 3 iPhoneアプリ開発 入門ノート Swift3 + Xcode 8対応
- 作者: 大重美幸
- 出版社/メーカー: ソーテック社
- 発売日: 2016/11/05
- メディア: 単行本
- この商品を含むブログを見る
絶対に挫折しない iPhoneアプリ開発「超」入門 増補改訂第5版 【Swift 3 & iOS 10.1以降】 完全対応 (Informatics&IDEA)
- 作者: 高橋京介
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/11/30
- メディア: 単行本
- この商品を含むブログを見る
Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 (WEB+DB PRESS plus)
- 作者: 石川洋資,西山勇世
- 出版社/メーカー: 技術評論社
- 発売日: 2017/02/07
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る