Swift入門メモ -列挙型-

15 列挙型

dotinstall.com

  • あるデータが取り得る値を一覧にしたデータ型
  • 1文字目は必ず大文字
// 1文字目は必ず大文字
enum Result {
    case Success
    case Error
}

var r: Result
r = Result.Success

// rがResult型というのはわかっているので型を省略して書くこともできる
r = .Success
  • 値を割り当てる
// Int型の値を割り当てる
enum Result: Int {
    case Success = 0
    case Error // 次にcase文が出てきたら値を1ずつ増やしてくれるので1になる
}

// Errorの値を取り出す
Result.Error.rawValue // 1
  • 関数を定義する
enum Result: Int {
    case Success = 0
    case Error
    // String型を返す関数を定義
    func getMessage() -> String {
        // self でデータが入ってくる
        switch self {
        case .Success:
            return "OK!!!"
        case .Error:
            return "NG!!"
        }
    }
}

// 関数を使う
Result.Error.getMessage() // NG!!