質問: 初めまして20YK11です。タイトルの通り、Swiftの学習について質問させて頂けたらと思います。 私は、「たった2日でマスターできるiPhoneアプリ開発集中講座」という本で、Swiftを勉強し始めました。本の説明に沿って、手を動かしながらアプリを開発して慣れていく旨の本で、実際に簡単なタイマーアプリや、マップアプリ等を作る事が出来ました。 しかし、読み進めていく中で、Swiftなら扱い方等には、慣れましたが、やはり各コードの意味等がちゃんと理解出来てないと、ただ本に沿ってアプリを作っただけなので、このままでは自分の力でアプリを作れないと思いました。そこで、皆さんに質問したいです。 ・例えば、プログラミングコードの「{}」の意味や「viewDidLoad()」の「()」が何を意味しているか、UIkitやlibraryの機能等を、どのようにして学んだのかを教えて頂きたいです。 自分なりにサイトを調べたり、本屋で参考書を見て良さそうな本を探してみましたが、全く見つかりませんでした。前提知識が足りなすぎるのでしょうか。でも、どうしても意味を各コードの機能や意味を理解してから、学習を進めたいです。どなたか質問にお答え頂けたらありがたいです。 よろしくお願い致します。
回答: Swift 言語をきちんと勉強するなら、おすすめは以下のどれかです。なお、書籍の内容はすぐ古くなるので、最新版を買ってください。 * The Swift Programming Language (英語ですが無料です。Apple Books でも読めます。) * [増補改訂第3版]Swift実践入門 ──直感的な文法と安全性を兼ね備えた言語:書籍案内|技術評論社 * 詳解 Swift 第5版|SBクリエイティブ UIKit に関しては、最近の入門書はよく分かりません。(というか、まともな入門書あるのかなぁ。) また、今年の WWDC の発表内容から察するに、今後は SwiftUI が必須になりそうです。(とはいえ UIKit もまだ必要...。) > > 「viewDidLoad()」の「()」が何を意味しているか > > > 関数やメソッドの宣言部 (`override func viewDidLoad() {` など) の `( 〜 )` では引数を宣言しますが、これが空 `()` の場合は引数がないことを意味します。 関数やメソッドを呼び出す際には `( 〜 )` に引数を書きますが、引数がない場合でも括弧そのものは省略できず、空の括弧 `()` は引数なしで呼び出すことを意味します。ちなみに括弧がない場合は関数の呼び出しではなく、関数そのものを意味します。 > > プログラミングコードの「{}」の意味 > > > `{}` にはいろんな意味があります。とりあえず思いつくものを挙げると、 * class や struct の中身 * 関数やメソッドの中身 * if や for などの処理のまとまり * クロージャ などでしょうか。特に最後のやつは重要ですが説明すると長くなるので、詳しくは上記の本をお読みください。