icon_f

定数とは

Swiftプログラミングでとても重要な『定数(ていすう)』と『変数(へんすう)』というものがあります。
名前は堅苦しいですが、分かれば簡単で便利なものです。まずは定数を見て行きましょう。
一体どんなものでしょうか?Playgroundでプログラムを試してみましょう。

※Playgroundの使い方が分からない方は → Playground で始めよう!

定数って何?

次の3行のプログラムを見てください。この中に登場する onigiri や osushi を、定数と呼びます。
定数とは『数字を直接書く代わりに、名前をつけておいて、使いたいときはその名前を書く』というものです。

実行すると?

このプログラムをPlaygroundに入力すると、ウィンドウ右側にはそれぞれ 3、8、11 と表示されます。
onigiriは 3、osushiは 8、onigiriとosushiを足すと11、という意味です。

メリット1:同じ数字を色々な所に書かなくて済み、修正したいときも1箇所直せばすむ

次のプログラムを見てください。このプログラムでは、卵がケースに6個入っているとして、2ケースでいくつになるか、3ケースでいくつになるか、を計算しています。

1ケースに卵が6個、という意味の定数を使うことにして、名前は eggs にしています。
2行目で、eggs に 2 を掛けます。3行目では eggs に 3 を掛けます。

ここでもしも、1ケースに6個というのは間違いで、8個入っていることが分かったとしましょう。
ラッキーなことに定数を使っているので、1行目だけを変えれば良いのです。

メリット2:複雑なプログラムを分割して、より分かりやすく書く事が出来る

もう1つの例を見てみましょう。まずは定数を使わずに、10年が何秒か計算するプログラムを書いてみます。(うるう年は2回として計算しています)

(10年×365日+うるう年の2日)×24時間×60分×60秒、と計算しています。

このプログラムを、定数を使って次のように書き直すことが出来ます。

10年が何日なのかを計算し、decadeDayという定数で表します。

1日が何秒なのか計算し、daySecという定数で表します。

decadeDayとdaySecを用いて、10年が何秒になるか計算します。

このように、複雑な計算式を分割して、分かりやすく書き直す事が出来ました。
この例では元の計算式がそれほど複雑ではありませんが、もっと複雑な計算式だったら、正しいかどうかを確認するだけでも大変な作業です。定数を使えば、それぞれの部分が合っているか確認できるくらいに分割でき、全体の計算をシンプルに書けます。

どうやって使うの?

名前をつけて、定数を使い始めることを『宣言』と言います。
定数を宣言するには、let と書き、それに続けて定数の名前を書きます。そしてその後に =(イコール)記号を書いて、覚えさせたい数字を書きます。これで、この後のプログラムで定数を使えるようになります。

また、以下の例のように、定数を用いた計算結果を、別の定数の宣言に使うこともできます。

letって何?

letとは、『○○を××にする(させる)』という意味の英単語です。
『let a = 1』 というプログラムを日本語で書くならば、『a を 1 にする』という感じです。そう考えれば少し分かりやすいかも?

定数の名前はどうつける?

定数の名前には、アルファベットと、数字と、記号が1つだけ使えます。_ という記号で、アンダーバーとかアンダースコアと呼びます。日本語で言えば『下線』です。
定数名の先頭には数字は使えません。また、先頭のアルファベットは小文字にします。2つ以上の単語を使って名前にするときは、2つ目以降の単語の最初の字を大文字にして繋げます。twoOrMoreWords といった感じです。
定数名は、a とか b とかでも構いませんが、何を表す定数なのか分かる名前をつけておかないと、後で見たときにこんがらがってしまいます。出来るだけ分かりやすい名前をつけましょう。

数字以外にも使えます

定数という名前からして、覚えさせておくのは数字という感じがしますし、ここまでの説明でも覚えさせるのはすべて数字を使って来ましたが、実は数字以外のもの、何にでも使えます。例として文字の定数を宣言してみましょう。

次節以降では、数字、文字以外の色々なものを定数として宣言するプログラムが出て来ますが、考え方は数字のときと変わりません。

というわけで、『定数』というものを覚えました。どんどん使ってみましょうね!