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にマイグレーションした