枚举
Swift中枚举特点
枚举类型是一等公民(first-class),在 C 语言中枚举将枚举名和一个整型值相对应。Swift 中的枚举更加灵活,不必给每一个枚举成员提供一个值。如果给枚举成员提供一个值(称为“原始”值),则该值的类型可以是字符串,字符,或是一个整型值或浮点数。
枚举枚举支持计算属性,可以定义构造函数,可以遵守协议,可以扩展。
枚举语法
1 | // 默认不为 0,1,2... |
1 | 例: |
关联值(Associated Values)
相当于枚举成员可以存储值
1 | //条形码 |
原始值
1 | enum ASCIIControlCharacter: Character { |
原始值始终不变, 关联值是可以变化的。
原始值的隐藏赋值
1 | enum Planet: Int { |
递归枚举
递归枚举(recursive enumeration)是一种枚举类型,它有一个或多个枚举成员使用该枚举类型的实例作为关联值。使用递归枚举时,编译器会插入一个间接层。你可以在枚举成员前加上indirect来表示该成员可递归。也可以在枚举类型的开头加上
indirect
关键字来表明所有成员都可以递归
1 | //见Xcode |