Enum 枚舉類(lèi)型

幾乎所有的高級(jí)語(yǔ)言都包含有枚舉類(lèi)型 Enum , Enum 可以幫助我們將同一類(lèi)型的數(shù)字表達(dá)值轉(zhuǎn)換為可閱讀的代碼。

什么情況應(yīng)該使用 Enum ?

假定應(yīng)用間已經(jīng)協(xié)商好以下數(shù)據(jù)協(xié)議

性別 未知 = 0 男 = 1 女 = 2

那么對(duì)應(yīng)成 Enum 就應(yīng)該這樣寫(xiě)

enum Gender: Int {
    case Unknown = 0;
    case Male = 1;
    case Female = 2;
}

明確你的 Enum 屬于哪個(gè)類(lèi)型是一個(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 的好處是顯而易見(jiàn)的,同一類(lèi)型的邏輯可以封裝到一個(gè)數(shù)據(jù)結(jié)構(gòu)中。 Swift中的 Enum 比 Objective-C 實(shí)用性大為增強(qiáng), Objective-C 中的 Enum 只能說(shuō)是 C++ 或是 C 的一種轉(zhuǎn)換。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容