swiftのenum(列挙型)について
Swiftの列挙型で調べたことをかきました。
- swift 3.0.2 参考: qiita.com
enum(enumeration, 列挙型)
- 読み方は「イーナム」が多いみたいですね
- 意味
列挙型(れっきょがた、enumerated type)とは、コンピュータプログラミングにおいて、プログラマが選んだ各々の識別子をそのまま有限集合として持つ抽象データ型である。 by wikipedia
- 値を共通の型で定義する方法って認識だけど本質的ではないのかな(?)
- enum型内で定義された識別子型は定義したenum型であって、intやstring型と直接互換性はない
- 使い方
enum Direction { case North case East case South case West } var d = Direction.North print(type(of: d)) // Direction // OK d = Direction.East // NG d = East // NG d = 33
- Swiftの場合はenum型内の要素の型はString, Int, Doubleを割り当てることもできるみたい
- 割り当てた値は
.rawValue
を使って取得することができる
enum Direction : String { case North = "kita" case East = "higashi" case Aaa } var d = Direction.North print (type(of: d)) // Direction var e = Direction.North print(e) // North print(e.rawValue) // kita print(type(of:e.rawValue)) // String var f = Direction.Aaa print(type(of: f)) // Direction print(f) // Aaa print(f.rawValue) // Aaa