【Swift4 入門】 Swiftを基礎から学ぶ人用 第2回 ー変数と定数について学ぶー

【スポンサーリンク】

f:id:mike-canada-tech:20180619235924p:plain

みなさんこんにちは、Mikeです。
 
今回は引き続きSwift4の基礎文法についてまとめています。定数・変数と聞いてピンとくる人もいれば、そうでない人もいると思いますので、本記事で「定数」と「変数」の説明と、Swift4内でのそれぞれの使い分けについて、噛み砕いて説明してみようと思います。

定数・変数とは

f:id:mike-canada-tech:20180620001758p:plain

定数(Constant)や変数(Variables)とは、”Name”だったり、123といった文字や数字等のデータを保管するための入れ物としての役割を果たしています。例えば以下のように定数にそれぞれ名前、年齢、学生かどうかの三つをいれ、それぞれプリントすると、その中身が出力されます。
 

変数と定数の宣言方法

先ほどのコードを見てもらうと、 定数名(例えば name )の宣言の前に「let」という文字がついていると思います。これは、このnameには”Mike”というString型(文字列)しか入らないです、という形で定数を宣言しており、中身を後ほど変更したりする事はできません。ちなみに、この後ほど中身を変えられない定数のことを「Immutable」と表現します。
 
では、仮に一度宣言してしまった定数の中身を変えたくなる場合に直面したら、どうすればよいでしょうか。例えばMikeは現在学生ですが、大学を卒業して社会人になると生徒ではなくなります。その場合、isStudent = false に変更する必要があるので、「let」の代わりに「var」を用いて変数を宣言します。このvarで宣言した変数の中身は、後ほど変更が効くので、「Mutable」と呼ばれたりします。
 
 
varを用いて宣言された変数は後ほど中身を変更できますが、誤って中身を変更したくない場合などにはletを用いて宣言する方が懸命です。

定数や変数の宣言方法 ー型推論と型アノテーションー

前のセクションでSwiftの定数や変数の宣言方法を紹介しましたが、厳密には「型アノテーション」と呼ばれる、変数の中に入るデータの型(種類)を明示する方法も存在します。Swiftに限らず、様々なプログラミング言語においてよく使われるものとしては、
String型  -> 文字列     (“hello”, “マイク”)
Int型  -> 整数         (1, -20, 0)
Bool型 -> 真偽       (true, false)
Float型   -> 小数点      (0.0, 1,234, 3.3)
Array型  -> 配列        ([1, 2, 3, 4], [“apple”, “orange”])
Dictionary型 -> 辞書型 ([“Mike”:19])
 
といったものがあります。これらは全てデータの「型」としては全くの別物として扱われるので注意が必要です。(型についてもっと知りたい方は後日投稿する記事を参考にして見てください。)
 
特に、「var」を用いて、変数で宣言した際には、その中身を変更できる性質上、中身のデータの型が意図しないものに変更されないよう、「型アノテーション」を行うことでエラーを未然に防げます。
 
一方、「let」を用いて、定数で宣言した際には、後々中身を変更できないので「型アノテーション」を行わずとも結果的にデータの型を指定していることになりますが、定数名があやふやなものについては「型アノテーション」を行うことで、初めてコードを読んだ人でもデータの型を用意に識別できるようになるメリットがあります。
 
ちなみに、Swiftでは var name = "Mike" のように「型アノテーション」を付けなくとも勝手に「あ、String型が入っているな」と推測してくれる機能がありますが、このことを「型推論」と呼びます。ちなみに、型推論でInt型が入っていると認識された場合、後ほどString型を代入しようとするとエラーになるので注意が必要です。
 
一般的に、Swiftは型推論等などから、コード規約が厳しい(ルールが多い)と言われることが多いですが、チーム開発中や、コードの行数が長くなってきた際に、この厳しさが、思わぬミスを事前に防いでくれることがあり、なかなか役に立ちます。

変数を利用する

先ほど3通りの定数や変数の宣言方法を紹介しましたが、宣言した定数や変数は後ほどコードを書く際に、その定数や変数の中身を取り出して利用することができます。
 
 
例えば、上記の例だと、Mikeの年齢が19で、Maryの年齢が20なので、2人の年齢を足した新たな変数「Sum」は39になります。ちなみに、定数や変数を利用する際は、宣言されたコード以降でしか利用できませんので注意してください。

まとめ

今回はSwiftの定数や変数宣言の方法とその利用方法を紹介しましたが、いかがだったでしょうか。
 
let 定数名 = 中身
var 変数名:型推論 = 中身
 
といった形で定数・変数の宣言ができ、それぞれ後ほど中に収納されているデータが変更可能か否か異なります。
 
次回はデータの型についてもう少し詳しく見ていくとともに、足す、引く、掛ける、割るといった四則演算についてまとめてみようと思いますので良かったら読んでみてください。
 
では今回はここまでにします!
 
Mike