幾乎所有的高級(jí)語言都包含有枚舉類型 Enum 稽莉, Enum 可以幫助我們將同一類型的數(shù)字表達(dá)值轉(zhuǎn)換為可閱讀的代碼。
什么情況應(yīng)該使用 Enum ?
假定應(yīng)用間已經(jīng)協(xié)商好以下數(shù)據(jù)協(xié)議
性別 未知 = 0 男 = 1 女 = 2
那么對(duì)應(yīng)成 Enum 就應(yīng)該這樣寫
enum Gender: Int {
case Unknown = 0;
case Male = 1;
case Female = 2;
}
明確你的 Enum 屬于哪個(gè)類型是一個(gè)良好的編碼習(xí)慣。
當(dāng)接收到服務(wù)器返回的 Gender 數(shù)值時(shí)稳其,應(yīng)該使用 Fail-able Init 的方式進(jìn)行 Enum 的初始化,以避免不良數(shù)據(jù)導(dǎo)致應(yīng)用崩潰炸卑。
enum Gender: Int {
case Unknown = 0;
case Male = 1;
case Female = 2;
func chinese() -> String {
if self == .Male {
return "男"
}
else if self == .Female {
return "女"
}
else {
return "未知"
}
}
}
let serverGender = 1
if let clientGender = Gender(rawValue: serverGender) {
print(clientGender.chinese())
}
else {
print("非法數(shù)據(jù)")
}
使用 Enum 的好處是顯而易見的既鞠,同一類型的邏輯可以封裝到一個(gè)數(shù)據(jù)結(jié)構(gòu)中。 Swift中的 Enum 比 Objective-C 實(shí)用性大為增強(qiáng)盖文, Objective-C 中的 Enum 只能說是 C++ 或是 C 的一種轉(zhuǎn)換嘱蛋。