Skip to main content

SwiftでEnum + Switch文のやり方

Enumで型をつけてswtichで分岐したいことがありますよね
Swiftでこのやり方を調べたのでまとめてみた


・Enumの定義の仕方
付属型Enumは以下のように定義する

enum APIResult {
    case success(Data)
    case failure(Error)
}

https://qiita.com/hachinobu/items/392c96820588d1c03b0c

 

・Enum+Switch
EnumでSwitch文
EnumのValueを使うときは、letで変数を定義する必要がある
以下のDataはenumのsuccessの中のでdata
errorはfailureの中のErrorが取り出せる

let result:APIResult = init()
switch result {
case .success(let data):
    hoge(data)
case .failure(let error):
    fuga(error)
}

 

・Enumの初期化
数字があるときに、数字をValueにしたEnumに変換したいときは、rawvalueに突っ込んで初期化する

enum Menu: Int {
    case TOP = 1
    case LIST = 2
    case HOGE = 3
}

#初期化
let menu = Menu(rawValue: number)!

https://stackoverflow.com/questions/25276775/swift-cast-int-into-enumint

 

・エラー
Exhaustive condition of switch case in Swift
enum以外だとdefault書かないといけないらしい
https://stackoverflow.com/questions/26686542/exhaustive-condition-of-switch-case-in-swift
 

こうしてSwiftでEnum+Switch文がかけるようになりましたとさ

関連記事:

Pocket