Enum 枚举类型

作者: PonyCui | 来源:发表于2015-11-25 10:52 被阅读83次

几乎所有的高级语言都包含有枚举类型 Enum , Enum 可以帮助我们将同一类型的数字表达值转换为可阅读的代码。

什么情况应该使用 Enum ?

假定应用间已经协商好以下数据协议

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

那么对应成 Enum 就应该这样写

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

明确你的 Enum 属于哪个类型是一个良好的编码习惯。

当接收到服务器返回的 Gender 数值时,应该使用 Fail-able Init 的方式进行 Enum 的初始化,以避免不良数据导致应用崩溃。

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("非法数据")
}

使用 Enum 的好处是显而易见的,同一类型的逻辑可以封装到一个数据结构中。 Swift中的 Enum 比 Objective-C 实用性大为增强, Objective-C 中的 Enum 只能说是 C++ 或是 C 的一种转换。

相关文章

  • 枚举

    枚举 wiki Java的枚举类型用法介绍 深入理解Java枚举类型(enum) 为什么要用enum? 学习计划 ...

  • Rust 编程语言-6-枚举和模式匹配

    6. Enum和Pattern matching 6.1 Enum枚举 IP地址枚举 消息类型枚举:可以看到枚举中...

  • 菜鸡学Swift3.0 12.枚举

    1. 枚举定义 enum 定义枚举类型 { case 枚举项 ... } 2.原始值 rawValue enum...

  • 037_枚举类型。

    namespace _037_枚举类型 { //枚举类型的定义 enum GameState:byte//...

  • C语言基础 之 枚举类型

    枚举类型 枚举类型: 列出所有可能的值 枚举类型的定义 枚举类型定义的一般格式:enum 枚举类型名 {枚举值表}...

  • Python_枚举

    一、枚举 Enum类 Python中所有枚举类型都是enum模块下的Enum类的子类。 枚举中的标识最好全部使用大...

  • C#魔将-lesson_07-枚举

    枚举(Enum) 枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。C# 枚举是值类型。换句话说,枚...

  • Java枚举

    枚举 普通方式定义(int枚举模式) 枚举方式 Enum抽象类常见方法 Enum是所有 Java 语言枚举类型的公...

  • 在学习swift的一些笔记(七)

    OC与Swift中的枚举 OC的枚举NS_ENUM NS_ENUM : 递增枚举, 每个枚举类型即便不是每个都赋值...

  • C#入门笔记(二)

    0x00 枚举 枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。C# 枚举是值数据类型。 enum...

网友评论

  • Hanrovey:这样写有没更好点

    enum Gender: Int {
    case GenderUnknown = 0;
    case GenderMale = 1;
    case GenderFemale = 2;
    }

本文标题:Enum 枚举类型

本文链接:https://www.haomeiwen.com/subject/rzorhttx.html