枚举为一组相关的值定义了任意类型的关联值存储到枚举成员中。
1.定义和创建
用case表示不同的枚举值,同一行枚举用“,”隔开
enum 枚举类型 {
case 枚举值1
case 枚举值2,枚举值3
}
//.Spring的默认值为spring
enum Seasons {
case Spring,Summer,Sutumn,Sinter
}
let currentSeason : Seasons = Seasons.Summer
print(currentSeason); //summer
2.枚举匹配
switch currentSeason{
case .Spring:
print("123")
default:
print("this is not Spring").
} //this is not Spring
3.关联值
//当检测不同的类型的时候,在case的分支代码中提取每个关联值作为一个常量
(用let前缀)或者作为一个变量(用var前缀)来使用:
enum Barcode {
case upc(Int,Int,Int,Int)
case qrCode(String)
}
var productBarcode = Barcode.upc(8, 85909, 51226, 3)
switch productBarcode {
case .upc(let num1,let num2,let num3,let num4):
print("upc")
case .qrCode(let num):
print("qrCode")
}
//upc
4.原始值(默认值)
enum ASCIIControlCharacter: Character {
case tab = "\t"
case lineFeed = "\n"
case carriageReturn = "\r"
}
5.原始值的隐式赋值
当枚举定义为整数时,第一个枚举成员默认为0;当第一个枚举成员为1时,后面依次
+1;
通过rawValue
来获取枚举成员的值 或 访问枚举成员;
enum tempType :Int{
case table,table2,table3
}
print(tempType.table) //table
print(tempType.table2.rawValue) //1
//初始化枚举实例,返回类型为可选类型
let possibleType = tempType(rawValue: 2)