使用enum關(guān)鍵詞并且把它們的整個(gè)定義放在一對(duì)大括號(hào)內(nèi):
enum SomeEnumeration {
// enumeration definition goes here
}
以下是指南針?biāo)膫€(gè)方向的一個(gè)例子:
enum CompassPoint {
case North
case South
case East
case West
}
一個(gè)枚舉中被定義的值(例如 North,South,East和West)是枚舉的成員值(或者成員)。case關(guān)鍵詞表明新的一行成員值將被定義。
注意:
不像 C 和 Objective-C 一樣,Swift 的枚舉成員在被創(chuàng)建時(shí)不會(huì)被賦予一個(gè)默認(rèn)的整數(shù)值。在上面的CompassPoints例子中,North,South,East和West不是隱式的等于0,1,2和3。相反的,這些不同的枚舉成員在CompassPoint的一種顯示定義中擁有各自不同的值。
多個(gè)成員值可以出現(xiàn)在同一行上,用逗號(hào)隔開:
enum Planet {
case Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Nepturn
}
每個(gè)枚舉定義了一個(gè)全新的類型。像 Swift 中其他類型一樣,它們的名字(例如CompassPoint和Planet)必須以一個(gè)大寫字母開頭。給枚舉類型起一個(gè)單數(shù)名字而不是復(fù)數(shù)名字,以便于讀起來更加容易理解:
var directionToHead = CompassPoint.West
directionToHead的類型被推斷當(dāng)它被CompassPoint的一個(gè)可能值初始化。一旦directionToHead被聲明為一個(gè)CompassPoint,你可以使用更短的點(diǎn)(.)語法將其設(shè)置為另一個(gè)CompassPoint的值:
directionToHead = .East
directionToHead的類型已知時(shí),當(dāng)設(shè)定它的值時(shí),你可以不再寫類型名。使用顯示類型的枚舉值可以讓代碼具有更好的可讀性。