ノート的なやつ

学んだことの備忘録です。ご指摘等お待ちしております。

swiftのenum(列挙型)について

Swiftの列挙型で調べたことをかきました。

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