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文がかけるようになりましたとさ
関連記事:
- iOS 15 Programming Fundamentals with SwiftのI-5とI-6を読んだので不明点をまとめる
- KotlinのResultとrunCatchingを使ってみた
- RxSwift5をRxSwift6にマイグレーションした