1. 枚举语法
enum 枚举名称 {
枚举成员
}
例如, 现在想要创建一个上班人员等级系统 :
enume Employee {
case 总经理
case 区域经理
case 主管
case 业务员
}
同样可以写成一行的形式 :
enume Employee {
case 总经理,区域经理,主管,业务员
}
2. 枚举成员的访问和编辑
枚举成员的访问
enum eEmployee {
case 总经理
case 区域经理
case 主管
case 业务员
}
print(eEmployee.总经理) //结果 : 总经理
枚举成员的编辑 : 编辑后的值必须是枚举中已有的枚举成员
enum eEmployee {
case 总经理
case 区域经理
case 主管
case 业务员
case 临时工
}
var employee = eEmployee.业务员
employee = .临时工
print(employee) //结果 : 临时工
3. 枚举值的遍历
我们通常使用 switch 语句进行枚举值的遍历
enum eEmployee {
case 总经理
case 区域经理
case 主管
case 业务员
}
let employee = eEmployee.总经理
switch employee{
case eEmployee.总经理 :
print("您好, 总经理!")
case eEmployee.区域经理 :
print("您好, 区域经理!")
case eEmployee.主管 :
print("您好, 主管!")
case eEmployee.业务员 :
print("您好, 业务员!")
}
print(employee) //结果 : 您好, 总经理!
4. 枚举的原始值
枚举成员可以使用相同类型的默认值, 这些默认值被称为枚举的原始值
数字
enum eGender : UInt8{
case Male = 1
case Female = 2
case Unknown = 3
}
在操作存储整数或者字符串类型的原始值枚举的时候, Swift 可以自动为没有分配原始值的成员分配对应的原始值, 则可以得到上面代码的简化版本 :
enum eGender : UInt8 {
case Male = 1, Female, Unknown
}
从第二个枚举成员开始, 后面每一个成员的原始值都比前一个成员的原始值大 1
如果第一个成员没有对应的原始值, 那么 Swift 默认第一个成员原始值为 0
String 类型的原始值默认为成员本身
Swift 中提供了 rawValue 属性来访问一个枚举成员的原始值
enum eEmployee : Double {
case 总经理
case 区域经理
case 主管
case 业务员
}
let employee = eEmployee.区域经理
print(eEmployee.区域经理.rawValue) //结果 : 1.0
enum eNewEmployee : String {
case 总经理
case 区域经理
case 主管
case 业务员
}
let newEmployee = eNewEmployee.区域经理
print(eEmployee.区域经理.rawValue) //结果 : 总经理
5. 枚举的方法
如果你想在枚举中添加类似于函数一类的, 使枚举有更多的用途, 称为给枚举添加方法
enum eGender : UInt8 {
case Male, Female, Unknown
func description() {
switch self {
case.Male :
print("Hi, man!")
case.Female :
print("Hi, lady!")
case.Unknown
print("Hi!")
}
} //这里给 eGender 枚举添加了一个名为 description() 的方法
}
let people = Gender.Female
people.description() //结果 : Hi, lady!
自創文章, 原著 : Jonny. 如若閣下需要轉發, 在已經授權的情況下請註明本文出處 :