1、Enum 的创建
1.1 标准定义
-
枚举的定义
enum CompassPoint { case North case South case East case West } enum Planet { // 多个成员的值出现在一行上 case Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune }
-
枚举的使用
// direction 的类型是已知的,所以可以在设定它的值时,不写该类型 var direction:CompassPoint = .West // 如果 switch 的条件声明在同一个函数内,这时会提示 Switch condition evaluates to a constant, // 要去除这个,只需要将声明的变量放在函数外就可以 switch direction { case .North: print("Lots of planets have a north") case .South: print("Watch out for penguins") case .East: print("Where the sun rises") case .West: print("Where the skies are blue") }
1.2 关联值定义
-
枚举的定义
enum Barcode { // 每个枚举成员设定一个或多个关联值 case UPCA(Int, Int, Int) case QRCode(String) }
-
枚举的使用
var productBarcode1:Barcode = .UPCA(8, 85909_51226, 3) var productBarcode2 = Barcode.QRCode("ABCDEFGHIJKLMNOP") switch productBarcode1 { case .UPCA(let numberSystem, let identifier, let check): print("UPC-A with value of \(numberSystem), \(identifier), \(check).") case .QRCode(let productCode): print("QR code with value of \(productCode).") } switch productBarcode2 { // 如果所有的枚举成员的关联值的提取为常数,或者当所有被提取为变量, // 为了简洁起见,可以放置一个 var 或 let 标注在成员名称前 case let .UPCA(numberSystem, identifier, check): print("UPC-A with value of \(numberSystem), \(identifier), \(check).") case let .QRCode(productCode): print("QR code with value of \(productCode).") }
1.3 原始值定义
-
枚举的定义
// 带原始值的定义格式 enum Seasons:Int { case spring = 1 case summer case autumn case winter }
-
枚举的使用
var seas = Seasons.spring // 获取枚举成员的原始值 print(seas.rawValue) // 找到一个特定的原始值枚举成员 seas = Seasons(rawValue: 3)! print(seas.rawValue)