変数と定数

定数

数値や文字列などに名前をつけて、プログラム内で使い回せるようにしたものを定数(Constant)と言います。Swiftではletを用いて定数を定義します。定数に値を入れることを代入と言います。

let 名前 = 数字や文字などの値

命名規則

定数名として使える名前には決まりがあります。
数字で始まっていたり、Swiftが持っている機能の名前(予約語)は使うことができません。実は日本語で定義をすることもできますが、原則英語の小文字で定義することが一般的です。

下記に示す定数定義はエラーが発生します。

let 100test = "test"    ⬅️ 定数名が数字から始まっている
let let = "test"      ⬅️  Swiftの予約語で定義されている
let test-30 = "test"    ⬅️  定数名の中に演算子が含まれている

定数の使用例

Swiftではprint()という関数を使って文字をコンソール画面に出力することができます。printを使ってプログラムを組んでみます。

print("にんにく入れますか?")
print("アブラマシマシヤサイカラメにんにく抜きで")
print("はいアブラマシマシヤサイカラメにんにく抜きですね")
コンソール実行画面

二郎系ラーメンでの注文時の会話のプログラムができました。この文章の中では2度 アブラマシマシカラメにんにく抜きという文字列が含まれています。私は二郎に行く際毎回同じトッピングをお願いするのでこれを定数にしてみます。

let topping = "アブラマシマシヤサイカラメにんにく抜き"
print("にんにく入れますか?") print(topping + "で") print("はい"+ topping +"ですね")
コンソール実行画面

実行しても同じ出力を出すことができました。基本的にいつも同じ注文をする私ですが、油を追加で入れたくないと思ったらどうすればいいでしょうか?

let topping = "アブラマシマシヤサイカラメにんにく抜き"
print("にんにく入れますか?")
print(topping + "で")
print("はい"+ topping +"ですね")
topping = "ヤサイカラメにんにく抜き" ⬅️ エラーがでます
print("やっぱり"+topping+"でお願いします")

コンソールエラー画像

会話の最後に定数の値を入れ直してヤサイカラメにんにく抜きというトッピングに変更しています。しかし、このコードはエラーになってしまいます。なぜかというと定数(let)は一度値を代入したら、あとで値を変えることができません。一度アブラマシマシヤサイカラメにんにく抜きというトッピングを注文したら今後ずっと同じトッピングで鹿注文することができないのです。
トッピングはその日の気分によって変えたいものです。後から値を変更したい場合は変数を使います

変数

数値や文字列などを後から値を変更したい場合は変数(Variable)を使います。
計算結果や、 ゲームのスコアやHPなど変化する値を保持する場合に使います。命名規則は定数と同じです

var 名前 = 変化する数値や文字列

変数の使用例

それでは先ほどのラーメンのトッピングの例を変数で書き直してみましょう

var topping = "アブラマシマシヤサイカラメにんにく抜き"
print("にんにく入れますか?")
print(topping + "で")
print("はい" + topping + "ですね")
topping = "ヤサイカラメにんにく抜き" 
print("やっぱり"+topping+"でお願いします")
コンソール実行画面

変数を使うことでエラーなく実行することができました。赤い下線が引かれている部分に注目してくださいトッピングの値を変更できていることがわかります。

Note

Swiftでは演算子の前後に空白を開ける場合は両方に開けなければならず、空白なしの場合は両側に空白を入れないという決まりがあります。
どちらか片方が空白なしでもう片方が空白有りの場合コンパイルエラーが発生します。


let topping = "アブラマシマシ"
print("トッピングは、"+topping + "でお願いします") ⬅️+の空白が前後で違うためエラーになります

演算子に関しては別の記事で詳しく解説をしますが、Swiftのきまりということで覚えておくようにしてください。

let topping = "アブラマシマシ"
print("トッピングは、" + topping + "でお願いします") 
print("トッピングは、"+topping+"でお願いします")
日記

前の記事

Arduinoで電子ピアノ