Swiftを始めから学んでみる。 Lesson 1

iBooksで「App Development with Swift」を開き、目次からLesson1を開いてください。

<img width="1280" alt="p1.png" src="https://qiita-image-store.s3.amazonaws.com/0/136973/21c11232-c061-abc0-67d5-f343750d8a61.png">

　Lesson1~5はPlaygroundを使って[swift 3.0]の基本構文の説明です。
「Playground」はアプリを作る場所ではなく、自分の書いたコードがどのように動いているか、すぐに確認できる場所です。
　コードの一部分だけの計算や変数の値の受け渡しを直接見ることができます。

　今回のLessonでは簡単な**算術記号の使い方**と、**コメントの残し方**（コメントアウトの方法）、**エラーが起きた時**にどうするかの説明を行います。

<img width="1280" alt="p2.png" src="https://qiita-image-store.s3.amazonaws.com/0/136973/57856d65-dc7e-6154-d7b2-b4b4e4b5349b.png">

Playgroundでは自分の思いついたコードをすぐに試すことができる場所です。それもアプリ全体を作らずに、一部分だけの動きをすぐに確認できます。

さてここで、ダウンロードした「App Development　Curriculum」の中にある「PlaygroundBasics.playground」というファイルを開くように指示されます。（ここからはXcodeの画面に移ります）

***

まずXcodeを起動します。（ファイルから直接開いてもいいですよ)
![xcode01.png](https://qiita-image-store.s3.amazonaws.com/0/136973/e7446bcd-83b1-797d-2711-a042dc5a50e9.png)

次にファイルを選択します。
![xcode02.png](https://qiita-image-store.s3.amazonaws.com/0/136973/59288be0-3e74-14a7-46dd-d07b7addb1a1.png)

***

プロジェクトファイルが開き、このような画面になるはずです。

<img width="1280" alt="1.png" src="https://qiita-image-store.s3.amazonaws.com/0/136973/d14e7468-917a-f9f8-7321-8e364574d7a2.png">


青の破線で囲った色のついた丸印が左から右に点滅しているのを確認してください。
もし点滅していなければ上手く設定ができていない可能性があります。
よろしければ次のページへ進みましょう。

<img width="1392" alt="2.png" src="https://qiita-image-store.s3.amazonaws.com/0/136973/536ccbcc-e9ea-ad41-9f2f-5d8d49130b3c.png">

<font color="Blue">青の破線</font>で囲まれた行に注目してください。
この書体の文字が編集可能なコードになります。(「*editable code*」 と呼ばれてるらしいです)

上の段は正の数を、下の段では負の数を表しています。
普通の数字の扱いと同じですね。

今度は画面右側の<font color="LimeGreen">緑の破線</font>で囲まれ部分に注目してください。
何もいじってなければ「765」「-1200」と表示されているはずです

ここは「リザルト・サイドバー(*results sidebar*)」と呼ばれ、その行の変数が持つ値や式の結果を表示してくれます。
値が変えると更新され、新たな結果が表示されます。

コンパイルをすることなく結果を視認できるので、とても便利です。
私も書いたコードが部分的にうまく動作しているのか確認する時に使わせていただいてます。

試しにどちらかの行をクリックしてみてください。
カーソルが移動して編集できるようになります。

では次のページへ参りましょう。

<img width="1392" alt="3.png" src="https://qiita-image-store.s3.amazonaws.com/0/136973/09651093-1da7-7c4d-a734-017da42b1dc2.png">

このページはSwiftで算術記号をどのように表記するのかを説明しています。
Programming Language C　を使用したことがある人は抵抗なく理解できると思います。

足し算は「+」
引き算は「-」
掛け算は「*」
割り算は「/」

また「( )」で括ることで乗算や除算より優先度が低い加算や減算を先に行うことができます。
この項では述べられていませんが剰余演算を行いたい場合は「%」を用いれば大丈夫です。
(詳しいことを知りたい場合はiBooksでApple Incが配信している「The Swift Programming Language(Swift 3.0.1)」をご参照ください)

いくつか数字と記号を入れ替えてみて、リザルトサイドバーで結果を確認してみてくだい、すぐに慣れると思います。
それでは次のページへ参りましょう。


<img width="1392" alt="4.png" src="https://qiita-image-store.s3.amazonaws.com/0/136973/6bb0e826-1e3f-95a0-c6d8-aef0a9d5fdb2.png">


このページではコードへのコメントの残し方を説明してくれます。
やり方は簡単で行の先頭に「//」をおけばその行はコメントとして無視されます。


まずは<font color="Blue">青の破線</font>で囲まれ部分をコメントアウトしてみましょう。
リザルトサイドバーに何も表示されなくなるはずです。

まずは<font color="Red">赤の破線</font>で囲まれ部分のコメントアウトを外してみましょう。
リザルトサイドバーに結果が表示されるはずです。


この項では述べられていませんが複数の行をコメントとしたい(コメントアウトしたい)場合は「/\*」を先頭に、「\*/」を後尾に置けば複数行をコメントアウト可能です。
ここまでは「C」と同じですが、異なる点としてはSwiftではコメントアウトを入れ子(nested)にすることができます。

☆コメントアウトの例
<img width="1072" alt="nested.png" src="https://qiita-image-store.s3.amazonaws.com/0/136973/37040c7a-ef8d-4315-3ddb-72fef3e9ae79.png">


後からコードを見直すとき、やはりコメントを残しておくと便利ですよね。
それでは次に参りましょう。

<img width="1392" alt="5.png" src="https://qiita-image-store.s3.amazonaws.com/0/136973/87de81eb-2fe9-7059-213d-0d62f4b42b9e.png">

このページでは作ったプログラムでエラーが出たときの心構えを説いてくれています。
焦りますよね？　完成したと思っていたコードでエラーが出たときは。

私もそうでした。大学からプログラミングを学び始めましたが才能もなく、周りには才能も努力もしている方が多くおられます。
その中で、コンパイル時にエラーが出ると動揺したものです。

プログラミングというのは想像以上にミスやエラーが多発するものです。
あなたが作ったコードも、ビルドすればおそらく間違いを指摘されるでしょう。

「**焦らなくていい**」

一度もエラーが出ずにコンパイルできることの方が珍しいです。
修正を行うこともプログラマーの醍醐味だと思うのです。

興奮せず、深く息を吸いましょう。

「**焦らなくていい**」

上手くいかなかくても、それは才能が無いことや失敗を意味するものではありません。
プログラミグの過程では避けて通れないものと思いましょう。

さて、次のページでは実際にエラーが出たときの対処法を学びましょう。

<img width="1392" alt="6.png" src="https://qiita-image-store.s3.amazonaws.com/0/136973/9fd0c7fe-e3b5-a007-fbac-c000f8cd06fb.png">

このページではエラーが起きていますね。
6行めの「!」をクリックすると間違いの内容が表示されます。

<img width="1392" alt="６−２.png" src="https://qiita-image-store.s3.amazonaws.com/0/136973/6b1a12b3-6104-3c0d-a77c-4f64d9d48c79.png">

今回の場合は「Division by zero(0による除算)」とあります。
Swiftでは0で割るといことはできません。
(まあ数学でも0で割る式はロピタルの定理などを用いて解消しますよね?)

ここではエラーを解消するためには、0を別の数字にすれば大丈夫ですね。
では最後のページに参りましょう。

<img width="1392" alt="スクリーンショット 2017-02-03 3.33.43.png" src="https://qiita-image-store.s3.amazonaws.com/0/136973/58bd84b8-be34-79c2-c628-a883163264af.png">

今回学んだことの要約ですね。
**算術記号の使い方**と、**コメントアウトの方法**、**エラーが起きた時**にどうするか、プログラミングでは基礎中の基礎ですがだからこそ大切ですね。

さて、iBooksで開いていた「App Development with Swift」の画面に戻り、次のページに進みましょう。

***

<img width="1280" alt="p3.png" src="https://qiita-image-store.s3.amazonaws.com/0/136973/a7872fc9-a249-84c1-4238-1e6c7cbf177e.png">

ここでは今日学んだことを確認するために二つの問題が用意されています。
学んだことを生かし、全問正解を目指しましょう。
赤色の波線で囲まれた部分に問題が提示されます。

1問目

<img width="1280" alt="p3-1.png" src="https://qiita-image-store.s3.amazonaws.com/0/136973/2bc72287-65e5-7ebb-acf7-0ca411f111c0.png">

緑色の波線で囲まれた4つの選択肢があるのでドラッグして青で囲まれた所に当てはめましょう。


「詳細であり、編集できない部分(Details you can't edit)」
「結果が表示される場所(Results view)」
「エラーが出ている行(A line with an error)」
「コメントアウトしている部分(A code comment)」


**正解**

![スクリーンショット 2017-02-03 3.50.40.png](https://qiita-image-store.s3.amazonaws.com/0/136973/d13327d3-008c-4ed9-5dfd-a9479af042a9.png)

2問目

<img width="1280" alt="p3-2.png" src="https://qiita-image-store.s3.amazonaws.com/0/136973/b865ae16-8708-e584-26dc-9c16ee728a5d.png">

「どちらの行が実行されるでしょう？」という問題です。

A「1行目が動く」
B「2行目が動く」
C「両方とも動く」
D「どちらも動かない」

**正解**

![スクリーンショット 2017-02-03 3.54.28.png](https://qiita-image-store.s3.amazonaws.com/0/136973/770b5bc2-5a5e-636a-1fe4-89d960ba2930.png)

***
最後に

<img width="1280" alt="p4.png" src="https://qiita-image-store.s3.amazonaws.com/0/136973/edc8d611-e96b-f8e2-1de0-5ada06b71a37.png">

ここは是非読んで頂きたいところです。
プログラマーとしての心構えを考えさせられます。

*どんな課題を解決したいの？*
*何が目的なのか？*

それではまた次回。