100 Days of SwiftUI【Day 6〜Day 10】
こんにちは、白くまコージです!
iOSアプリを開発できるようになるため、Swiftを勉強中です。
100 Days of SwiftUIのDay 6〜Day 10が完了したので、ここに記録を残します。
学習記録
Day 6 – Loops
学習時間
60分
学んだこと
- forによる繰り返し
- whileによる繰り返し
- continueとbreakによる繰り返しの中断
- これまでの復習
感想
繰り返し処理の解説です。
他のプログラミング言語と基本的には同じであるため、特に難しい内容ではありません。
範囲を表す「...」
と「..<
」があまり見慣れない構文でしたが、内容としてはすんなり理解できるものかと思います。
最後にチェックポイントの課題がありましたが、これも簡単なため特に苦戦することはないでしょう。
Day 7 – Functions, part one
学習時間
60分
学んだこと
- 関数の定義方法と使い方
- 関数から値を返す方法
- タプル型を使って関数から複数の値を返す方法
- 引数にラベルを付与する方法
感想
関数の解説です。
基本は他のプログラミング言語と同じですが、他の言語ではあまり見ない構文もあります。
まず、関数の中身が1行の場合にreturnを省略できるのは、少し変わった構文だなと思いました。しかし、コードをよりすっきりさせることができるため便利なのと、この後登場するクロージャを理解するためにも覚えておいた方がいい構文だと思います。
タプル型も他の言語ではそこまで見ない構文かなと思います。複数の値を関数から返すことができるため、わざわざ構造体やクラスを定義するまでもないような場面であれば使い勝手は良いと思います。
引数にラベルを付与できるのは、とても素晴らしい構文だと思います。関数を使ったコードが圧倒的に読みやすくなるため、ここは個人的にSwiftの好きなところですね。
Day 8 – Functions, part 2
学習時間
45分
学んだこと
- 引数にデフォルト値を与える方法
- 関数からエラーを投げる方法
- エラーが発生する可能性がある関数を呼び出す方法
- 関数の復習
感想
昨日に引き続き、関数の解説です。
エラーについては、もう少し詳しく知りたいなと思いました。エラーの定義方法は、すごく簡単な例しかなかったので、実際に使う場合もこんなものなのか、それとももっと情報を追加するのか、などが気になりました。
最後にチェックポイントの課題がありましたが、これも特に難しくはなかったので問題なく実装できました。
Day 9 – Closures
学習時間
90分
学んだこと
- クロージャの定義方法と使い方
- クロージャの省略形
- 引数としてクロージャを定義する方法
感想
クロージャの解説です。
記事内でも述べられている通り、やはりクロージャは理解するのが難しいです。
動画を見ている時は「ふんふん」と理解した気になっているのですが、いざ実際のコードを見てみると頭が混乱してきてしまいます。
なんとなく慣れの問題な気もするので、ここで完璧に理解しようとせず先に進みたいと思います。
ここでもチェックポイントの課題がありましたが、問題なく実装できました。
Day 10 – Structs, part one
学習時間
70分
学んだこと
- 構造体の定義方法
- コンピューテッドプロパティの定義方法
- プロパティオブザーバの定義方法
- イニシャライザの定義方法
感想
構造体の解説です。
オブジェクト指向言語のクラスと似た項目ですが、コンピューテッドプロパティやプロパティオブザーバはあまり見ない構文なので、ちゃんと抑えたいところです。
あと、構造体のプロパティを関数内で変更する場合にmutatingを付与しなければいけないのは忘れてしまいそうなので、しっかりと覚えておきたいです。
最後に、動画で特に解説がない項目がテストで出てくるのが気になりました。コンピューテッドプロパティはvarじゃないといけないなど(確かに動画の説明で使用していたコードはvarで定義されていましたが、明確な解説はありませんでした)。なので、テストにも目を通した方がより理解が深まっていいかもしれません。
まとめ
100 Days of SwiftUIのDay 6〜Day 10が完了しました。
まだSwiftの基本的な構文の解説ではありましたが、難しい構文であるクロージャが登場しました。
完全に理解するのは難しいですが、徐々に慣れていきたいと思います。
他にも引数ラベルやコンピューテッドプロパティなどの面白い構文もあるため、Swiftという言語がかなり良いと思えてきました。
まだまだ序盤なので挫折せずに継続できるよう頑張っていきたいです。
以上、白くまコージでした!