定数を列挙するために使う。正直まだ構造体と何が違うのかよくわからない。
でもとにかく見やすいので覚えておく。
まずは基本形
enum enumの名前: 型 { case 定数名 = 定数 }
実際に使うとこんな感じで使える。とても見やすい。
enum Name: String { case first = "飯田" case second = "上田" case third = "江頭" } let name1:Name = .first let name2 = Name.second print(name1) print(name2) print(name1.rawValue) print(name2.rawValue)
実行するとこうなる。
let name:Name = .firstで取得しても、中身を使うためにはrawValueを付けなければならない。
そこだけは注意。
ネストできる
クラスとの違いは、enumはネストすることができるところ。これはすばらしい。
//1年生 enum FirstGrade { //1組 enum Class1: String { case first = "飯田" case second = "上田" case third = "江頭" } //2組 enum Class2: String { case first = "合田" case second = "水谷" case third = "和田" } } let firstGradeClass1First = FirstGrade.Class1.first.rawValue let firstGradeClass2Third = FirstGrade.Class2.third.rawValue print(firstGradeClass1First) print(firstGradeClass2Third)
実行結果
JavaScriptにもenumがあるらしい。もっと早く知りたかった。