枚举为一组关联的值定义了一个共同的类型,使你可以在你的代码中以类型安全的方式来使用这些值
枚举语法
1 | enum someEnumration{ |
使用 Switch 语句匹配枚举值
关联值
1 | //表示两种商品条形码的枚举 |
原始值
使用 ASCII 码作为原始值的枚举:
1 | enum ASCIIControlCharacter: Character { |
原始值的隐式赋值
在使用原始值为整数
或者字符串
类型的枚举时,不需要显式地为每一个枚举成员设置原始值,Swift 将会自动为你赋值
1 | enum Planet: Int { |
使用枚举成员的 rawValue 属性可以访问该枚举成员的原始值:
1 | let earthsOrder = Planet.earth.rawValue |
使用原始值初始化枚举实例
如果在定义枚举类型的时候使用了原始值,那么将会自动获得一个初始化方法,这个方法接收一个叫做rawValue
的参数,参数类型即为原始值类型,返回值则是枚举成员或nil
1 | let possiblePlanet = Planet(rawValue: 7) |
注意:
原始值构造器是一个可失败的构造器,因为并不是每一个原始值都有与之对应的枚举成员。
递归枚举
递归枚举是一种枚举类型,它有一个或者多个枚举成员使用该枚举类型的实例作为关联值。你可以再枚举成员前面加上indirect
来表示该成员可递归。
1 | enum ArithmeticExpression { |