首页 > 代码库 > swift笔记- 枚举

swift笔记- 枚举

枚举是一系列相关值的通用类型,是类型安全的。

Swift中的枚举不需要为每一个成员赋值,而成员的值可以是 字符串 字符 或者人意的整数或浮点值。

枚举成员可以指定任何存储成员值类型的关联值enumeration members can specify associated values of any type to be stored along with each different member value。枚举成员可以是相关的成员集合,而每个成员也可以是一个单独的小集合。

枚举跟传统的类结构颇为相似,例如有computed properties可以提供当前枚举值的附加信息,也有实例方法,枚举可以有自己的初始化方法,也可以被扩展extended,可以遵守协议。

?
1
2
3
4
5
6
enum CompassPoint {
    case North
    case South
    case East
    case West
}

关键字case声明一个枚举成员,值得注意的是,枚举成员没有自己的默认值,(不像c,默认是0,1,2,3)。定义好枚举之后,CompassPoint便成为一个数据类型。

?
1
var directionToHead = CompassPoint.West

此时directionToHead的类型是什么?编译器会在初始化CompassPoint时根据他的值类型推断出来。一旦变量定义为CompassPoint类型,就可以用点语法指定任意成员:

?
1
directionToHead = .East