More than 1 year has passed since last update.

用途

値をグループ化するのに使用する。

enum Size {
  case S, M, L
}

// または
enum Size {
  case S
  case M
  case L
}

var size = Size.S // 型はSize型、値はEnum Valueという型で扱われる。

参照する

if(size == Size.S){
  print("Sサイズ")
}

// 型推論で.Sだけでもいける
if(size == .S){
  print("Sサイズ")
}

enumに値(Raw Value)を割り当てる

enumに型宣言が必要。

enum Size: Int {
  case S = 1
  case M 
  case L
}

※ Intの場合、設定値を省略すると、0, 1, 2... という数値が自動的に割り振られる。1から始めると、同じように2, 3, 4...という数値が自動で割り振られる。

Raw Valueを参照するには、.rawValueを使用する。

var size = Size.S
if(size.rawValue == 1){
  print("Sサイズ")
}

関数を定義する

enum Size {
  case S, M, L

  func sizeToString() {
    switch self {       
      case .S:
        print("Sサイズ")
      case .M:
        print("Mサイズ")
      case .L:
        print("Lサイズ")
      default:
        break
    }
  }
}

var size = Size.S
size.sizeToString() // => "Sサイズ"

rawValue から case を求める

型を指定する必要があります。

enum Size: Int {
    case S = 0, M, L

    func sizeToString() {
        switch self {
        case .S:
            print("Sサイズ")
        case .M:
            print("Mサイズ")
        case .L:
            print("Lサイズ")
        default:
            break
        }
    }
}

let section = Size(rawValue: 0)!
print(section) // S
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.