【Swift】Enum(列挙型)の使い方。データ型を自作する。(Swift 2.1、XCode 7.2)

2020年6月16日

Enum(列挙型)の宣言

Enum(列挙型)とは、変数のとりうる値が少ない場合に自作して使うデータ型のことであり、以下のように宣言する。

 

例えば、ゴルフコースの種類の変数で、とりうる値が「パー3、パー4、パー5」だけの場合、変数をInt型とするのでは無く、「パー3、パー4、パー5」の3種類の値のみ許される自作のデータ型を作り、変数の値に代入する。

これにより、変数の値が意味するものが一目で分かるのと、変数に設定できる値を制限できるメリットが生まれる。

 

Enumの変数を作ったあとに変数の値を変更するときは、型名は省略することができる。

 

Enum(列挙型)を使う

普通の変数と同じように、条件分岐や制御構文の条件式の中で使うことができる。

 

しかし、上記のままではPAR3、PAR4、PAR5の大小比較ができない。そこで、以下のようにEnumの値に紐づく別のデータ値を定義する。対応データ型はInt、Double、Stringなど何でも構わない。

 

例えば、PAR3、PAR4、PAR5のそれぞれの最大ヤード(距離)をInt型の整数値として持たせておくには以下のコードのように定義する。変数.rawValueで整数値を取得すれば、変数同士を比較したり、変数を計算式の中で利用できる。

 

Int型の対応データ値を省略した場合は、0から順番に連番が振られる。省略していない値がある場合は、その値をインクリメントして連番が振られる。

 

Enum(列挙型)に関数を定義する

Enum型の中で関数を定義し、自作したデータ型の変数に対して自作したメソッドを呼び出せるようにしておける。