「値」って何のこと?
●エディタで入力して結果を確認!
ここでは画面に「こんにちは」と表示させました。エディタにプログラムを入力すると、サイドバーに「"こんにちはn"」と表示されますが、デバッグエリアは実際にiPhoneなどに表示される内容が出力されるため、「n」は表示されません。また、Swiftでは「こんにちは」などの文字や数字をたくさん扱いますが、これらのことを「値」と呼びます。
Swiftの2大ルールをチェック
(1)英字や記号、数字は半角で書こう!
「print」や「()」など、コード内の英数字や記号はすべて半角で入力します。Swiftでは大文字の英数字と記号は原則対応してません。
(2)単語や記号の間には半角スペースを入れよう!
単語や記号といった最小単位を「トークン」と呼びます。「print ("こんにちは")」では、命令「print」と値「("こんにちは")」の間に半角スペースが必要です。括弧類もトークンのため、「区切らなくていいの?」と困惑する人もいるかもしれませんが、自動で区切ってくれるため、指定する必要はありません。
●変数は上書き可能
文字列「アイフォン」が代入された変数「電話」に、改めて文字列「iPhone」を代入すると、値が上書きされ、命令「print」で表示される結果は「iPhone」になります。上書きしたいとき、新たに「var」を書く必要はありません。
変数を使うメリット
Swiftを勉強し始めた人の中には、「値があるのに、なんでわざわざ変数を使うの?」と疑問に思う人が多いかもしれません。そこで、変数を使うメリットを説明しましょう。変数を使うメリットは、プログラムのわかりやすさや修正の容易さです。たとえば、プログラムで何度も使うような文字列(ここでの例は、「アイフォン」)を変数にいれておくと、もしあとで名前が変わったとしても、変数に値を入れている1箇所を書き換えるだけで修正が完了します。逆に変数を使わないと、全箇所修正しなけばなりません。また、一度計算した結果を次のプログラムで再度利用する場合にも、変数を使えば、計算式が変わる度に広範囲に渡ってプログラムを修正する必要がなくなるのです。
●「let」を使って定数を宣言
定数を宣言するときは、「let」を使います。ここでは定数「コンピュータ」を宣言して、文字列(値)として「Mac」を代入しています。定数も変数と同じように、命令「print」などが利用できます。
●あとから値を変更できない
定数は、変数のように一度代入した値を変更できません。実際にPlaygroundに入力してみると、上部に赤いマークが表示され、エラーが1つあることがわかります。これをクリックすると、左にエラーの詳細が表示されます。
同じ名前は付けないで!
「var」や「let」で宣言して変数・定数を作るとき、付ける名前にも注意が必要です。まず、変数と定数に同じ名前は付けられません。たとえば、変数「電話」を宣言したのあとに、定数「電話」は宣言できないのです。また、代入する値はわかりやすいものにしておくようにしましょう。わかりにくい名前を変数にしてしまうと、プログラムを書いているときに、いちいち値を代入している部分を探して確認しなくてはなりませんし、プログラミングミスを招いてしまうことになります。加えて気をつけたいのが「=(イコール)」の意味。数学の場合、「=」は「左と右の数が同じ」という意味ですが、Swiftの場合は「変数(定数)に右の値を代入する」と覚えましょう。
●Swiftでは「型推論」が働く
型を指定しない場合、「型推論」というSwiftの機能により、代入する値によって変数の型を決めてくれます。最初に「24」を代入した変数は「整数型」となり、「文字列型」である「24歳」で上書きしようとすると、エラーになります。
型がMacを助けてくれる!
型はコンピュータが利用するメモリに大きく関係しています。変数や定数は、宣言したときにコンピュータ内のメモリを確保しています。このとき「値に対して大きすぎるメモリを確保」してしまうと、メモリを圧迫してしまい、コンピュータの動作に支障が出るのです。これは「入れる荷物が小さいのに大きな箱」を用意してしまうと、箱の置き場に困ってしまうことと同じです。このため、変数や定数の使われ方や、内容の大きさによって、型を決めておく必要があります。
また、型のないプログラミングの場合、プログラム内で事前にエラーを発見できず、アプリを起動してからエラーが発覚する、という危険もあります。型を決めることで、あらかじめエラーを発見できるのです。
●文字列の計算もOK
異なる型の演算も可能です。たとえば、整数型と浮動小数点数型を計算すると、結果は浮動小数点数型になるため、「1080.0」と、小数点以下に「0」が付きます。また文字列型を足し算すると、2つの文字列が結合されます。プログラムの書き方は下の図を参考にしましょう。