使用 enum
关键词来创建枚举并且把它们的整个定义放在一对大括号内:
enum SomeEnumeration {
// 枚举定义放在这里
}
下面是用枚举表示指南针四个方向的例子:
enum CompassPoint {
case north
case south
case east
case west
}
枚举中定义的值(如 north
,south
,east
和 west
)是这个枚举的成员值(或成员)。你可以使用 case
关键字来定义一个新的枚举成员值。
注意
与 C 和 Objective-C 不同,Swift 的枚举成员在被创建时不会被赋予一个默认的整型值。在上面的
CompassPoint
例子中,north
,south
,east
和west
不会被隐式地赋值为0
,1
,2
和3
。相反,这些枚举成员本身就是完备的值,这些值的类型是已经明确定义好的CompassPoint
类型。
多个成员值可以出现在同一行上,用逗号隔开:
enum Planet {
case mercury, venus, earth, mars, jupiter, saturn, uranus, neptune
}
每个枚举定义了一个全新的类型。像 Swift 中其他类型一样,它们的名字(例如 CompassPoint
和 Planet
)以一个大写字母开头。给枚举类型起一个单数名字而不是复数名字,以便于:
var directionToHead = CompassPoint.west
directionToHead
的类型可以在它被 CompassPoint
的某个值初始化时推断出来。一旦 directionToHead
被声明为 CompassPoint
类型,你可以使用更简短的点语法将其设置为另一个 CompassPoint
的值:
directionToHead = .east
当 directionToHead
的类型已知时,再次为其赋值可以省略枚举类型名。在使用具有显式类型的枚举值时,这种写法让代码具有更好的可读性。