枚举为一系列相关的值定义了一个公共的组类型,同时可以再类型安全的情况下去使用这些值。
(1)枚举的定义和访问
Swift中,也使用enum关键字来创建枚举,语法格式如下
enum 枚举名 {
// 枚举定义
}
enum WeekDays {
case Monday
case Tuesday
case Wednesday
case Thursday
}
从上面的代码示例中可以看到,枚举名以大写字母开头,使用case关键字定义了四个值,这些值代表这个枚举的成员值。多个成员值也可以写在一行,使用逗号隔开:
enum WeekDays {
case Monday, Tuesday, Wednesday, Thursday
}
枚举在被创建时,枚举成员不会被赋予一个默认的整型值,如果给枚举成员提供一个值,这个值被称为原始值,而且该值的类型可以使字符串、字符、整型值、或者浮点数
来看下面访问枚举成员值的代码:
var day = WeekDays.Monday
day的类型可以在WeekDays的某个值初始化时推断出来,一旦day被声明为WeekDays类型,就能够使用更加简短的点语法将其设置为另一个值:
day = .Tuesday
(2)原始值
上面提到,枚举类型需要为其设置一个类型和初始值,下面的代码可以一目了然:
enum WeekDays : Int {
case Monday = 0
case Tuesday = 1
case Wednesday = 2
case Thursday = 3
}
当然也可以有简化写法
enum WeekDays : Int {
case Monday = 0, Tuesday, Wednesday, Thursday
}
(3)使用Switch语句匹配枚举值
这个用法对于我们来说并不陌生,枚举类型和switch可以很好地配合使用。
func writeGreeting(day : WeekDays) {
switch day {
case .Monday:
print("星期一")
case .Tuesday :
print("星期二")
case .Wednesday :
print("星期三")
case .Thursday :
print("星期四")
}