壹.查點
枚舉定義包含壹組相關值的公共類型。枚舉是Swift中的類類型,有很多傳統類獨有的特征,比如計算屬性、實例方法、通過擴展或協議增強功能等。
1.1枚舉定義
Swift語言中枚舉類型的定義語法如下:
枚舉比較點{
凱斯北
凱斯南
凱斯東
凱斯西
}
枚舉語法由關鍵字enum標識,後跟枚舉類型名稱,所有枚舉定義都放在壹對大括號中。
枚舉中定義的值稱為枚舉成員值,case關鍵字用於指示新的枚舉成員值。
與C和Objective-C語言中的枚舉類型不同,在Swift中不需要為枚舉成員分配默認的整數值。
如果為枚舉成員提供值,該值可以是字符串、字符或任意整數或浮點數。
枚舉成員值可以在壹行中定義,並用逗號分隔。
枚舉星球{
水星、金星、地球、火星、木星、土星、天王星、海王星
}
每個新定義的枚舉屬於壹個新的獨立類型。
1.2枚舉的使用
您可以將枚舉類型的值賦給常數或變量,例如:
var directionToHead = CompassPoint。西
上面定義的變量directionToHead可以推斷為CompassPoint類型的枚舉變量,因此可以將該變量設置為CompassPoint類型的其他值,例如:
DirectionToHead =。East //省略枚舉類型。
枚舉也可以在switch語句中使用,以匹配獨立的枚舉值:
directionToHead =。南方
切換方向頭{
凱斯。北方:
println(“許多行星都有北”)
凱斯。南方:
println(“小心企鵝”)
凱斯。東部:
println(“太陽升起的地方”)
凱斯。西部:
println(“天空蔚藍的地方”)
}
1.3將相關值賦給枚舉成員
Swift可以為每個枚舉成員指定任意類型的相關值,為每個枚舉成員指定的相關值類型可以不同。
枚舉條形碼{
凱斯UPCA(整數,整數,整數)
案例二維碼(字符串)
}
此示例定義了條形碼的枚舉類型,並定義了兩個枚舉值UPCA和QRCode,並且可以將多元組類型的相關值分配給枚舉值UPCA,將字符串類型的相關值分配給QRCode。此示例沒有為枚舉值本身指定任何類型的值。
您可以使用上面定義的枚舉為常數或變量賦值,例如:
var productBarcode =條形碼UPCA(8,85909_51226,3)
在本例中,變量productBarcode被賦予壹個枚舉值Barcode。UPCA,分配給它的相關元組類型的值為(8,85909_51226,3)。
然後,可以將變量productBarcode設置為另壹個具有字符串類型相關值的枚舉值:
productBarcode =。QRCode("ABCDEFGHIJKLMNOP ")
還可以在switch語句中使用此枚舉,並通過綁定常數或變量導出相關類型的值:
切換產品條形碼{
凱斯。UPCA(讓數字系統,讓標識符,讓檢查):
println("UPC-A,值為\(數字系統),\(標識符),\(檢查)。")
凱斯。二維碼(let productCode):
println("值為\(productCode)的二維碼)")
}
如果枚舉成員的所有相關值都派生為常量,或者所有相關值都派生為變量,則上述語法也可以縮寫如下:
切換產品條形碼{
案件受理。UPCA(數字系統,標識符,檢查):
println("UPC-A,值為\(數字系統),\(標識符),\(檢查)。")
案件受理。二維碼(產品代碼):
println("值為\(productCode)的二維碼)")
}
1.4將原始值賦給枚舉。
除了將相關值分配給枚舉成員之外,還可以為每個枚舉成員預先分配相同類型的原始值。這類似於C語言將整數值賦給枚舉成員,但Swift定義的原始值可以是字符串、字符或任何整數或浮點數類型,例如:
枚舉ascii control Character:Character {
案例標簽="\t "
案例換行="\n "
案例承運人返回="\r "
}