過去の経験上、Java
等でもenum
列挙型をそれほど多く使用していなかった。それなので個人的には結構ノーマークな話題。
しかし、Swift
もバージョンアップしてきて仕様も変わっており勉強に追い付いていないため、これを機にenum
を整理してみる。.toRaw
等のメソッドもいつの間にか失くなっているしね。
ちなみに、enum
の中身の値を確認するために、あえてPlayground
で変数への代入をしてます。
戻り値指定無しのenum
下記のように、enum
を展開すると変数に(Enum Value)型が代入されている。
そこで、.hashValue
というメソッドで実際の値を取得できるようだ。
値の中身は一般的なenum
らしく、0から整数順(0,1,2,3,4,5)にて値が設定されている。
.hashValue
というくらいなので、これらはハッシュ値なのであろう。
戻り値(Int)指定のenum
今度は、Int値を返すように:Int
を指定。
この場合、.hashValue
でも、.rawValue
でも利用できる。
戻り値(String)指定のenum
今度は、String値を返すように:String
を指定。
するとコンパイルエラーとなる。
String
型を返すように明示したのだから、enumの値にString
の値を設定してあげる。
上記の結果を見て、enum
がどのように展開するかが見えてきた。
実際のenum
の使いどころは下記のように、myPet
をenum
型として使える。戻り値のString
型ではないのがミソ。
とりあえず、色々試したいし、長くなりそうなので今回はここまで・・・。
Lovely Swift!!