100日後にアプリエンジニアになるウサギ【3日目】
本日2度目のおつかれさまです!Ninomaeです
今日は朝起きて昨日分の進捗報告をしてからお勉強となかなかハードな1日でした(笑)
3日目ともなるとだいぶnoteの投稿にも慣れてきて、書くのが楽しく習慣化されてきたような感じがします(note公式さんが、創作は続けることが大事とおっしゃっていた意味が少しだけわかった感じがします笑)
お昼に引き続き、3日目の今日取り組んだコンテンツと得られた気づきについて紹介できたらと思います。お付き合いよろしくお願いします!
今日やったこと
参考書: Develop in Swift Fundamentals
■ Swiftの基本文法
- 文字列型について
- 関数について
- 構造体について
- クラスと継承について
- 集合型について
- 繰り返し処理について
やったことの感想・気づき
今日はSwiftの基本文法を中心のお勉強になりました。どのコンセプトも他のプログラミング言語で一通りなぞったことのあるコンテンツだから、余裕でしょ(笑)と思っていたら、自分が理解していない概念も多かったです。
特に、文字列型や関数、集合型、繰り返し処理なんかは、以前PythonやGolangを使ってコードを書いていたこともあってすんなりと理解できたのですが、構造体とクラスの部分で少し引っかかりました。(また今度100うさiOSアプリ開発備忘録でまとめたい)
詰まった部分
構造体とクラスは結構似ているところも多いのですが、インスタンス(構造体を元に作成したデータの実体)をコピーしたときの挙動や、継承と呼ばれる概念の有無などが大きな違いになります。
構造体ではインスタンスをコピーすると、そのインスタンスの持っている値がコピーされる(値渡し)のですが、クラスではインスタンスの記録されている場所の情報がコピーされます(参照渡し)。
この違いを理解していないと、コピーしたインスタンスを変更したときにコピー元のインスタンスまで変更されてしまったり、変更したいのに変更できなかったりといろいろ不都合があるみたいです。
また継承(パズドラのスキル継承ではない笑)については、クラスにのみ備わっている機能で、継承元のクラスの性質を受け継いで新しいクラスを作成できるというものです。乗り物で例えると
こんな感じで、乗り物クラス(名前, 定員)からはじめて、乗り物クラスを継承した自転車クラスは乗り物クラスの機能(名前, 定員)を備えた、名前, 定員, 車輪の数を保持することのできるクラスになります。
同様に、自転車クラスを継承した自動車クラスは、最高時速、燃料のタイプといった情報に加えて、自転車クラス、乗り物クラスで保持することのできていた情報を保持することができます。
正直ちゃんとクラスを理解して使っていなかったので、今回しっかりと腰を据えて勉強できてよかったです。
まとめ
今回の記事は専門的な内容を書いてしまいました。一言でまとめるとわかりやすい教科書でしっかりと必要なコンセプトを勉強できました!という感じですね(笑)
明日以降もしっかりと勉強+noteの投稿をしていきますので、応援のほどよろしくお願いします!「いいね!」や「フォロー」が励みになります(^^)
(明日はPokemon GOでイーブイのイベントがあるので、勉強できないかも?)
では、また✋