枚舉為一系列相關的值定義了一個公共的組類型,同時可以再類型安全的情況下去使用這些值。
(1)枚舉的定義和訪問
Swift中,也使用enum關鍵字來創(chuàng)建枚舉,語法格式如下
enum 枚舉名 {
// 枚舉定義
}
enum WeekDays {
case Monday
case Tuesday
case Wednesday
case Thursday
}
從上面的代碼示例中可以看到,枚舉名以大寫字母開頭,使用case關鍵字定義了四個值,這些值代表這個枚舉的成員值。多個成員值也可以寫在一行,使用逗號隔開:
enum WeekDays {
case Monday, Tuesday, Wednesday, Thursday
}
枚舉在被創(chuàng)建時,枚舉成員不會被賦予一個默認的整型值,如果給枚舉成員提供一個值,這個值被稱為原始值,而且該值的類型可以使字符串、字符、整型值、或者浮點數(shù)
來看下面訪問枚舉成員值的代碼:
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("星期四")
}