Enum 枚举类型
2015-11-25 本文已影响83人
PonyCui
几乎所有的高级语言都包含有枚举类型 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 的一种转换。