enum CompassPoint { case North case South case East case West } var directionToHead = CompassPoint.West directionToHead = .East
directionToHeadは一旦、varで代入されて型が固定されると、次の行以降はdot表現が使える。
Associated Values
enum Barcode { case UPCA(Int, Int, Int, Int) case QRCode(String) } var productBarcode = Barcode.UPCA(8, 85909, 51226, 3) productBarcode = .QRCode("ABCDEFGHIJKLMNOP") switch productBarcode { case .UPCA(let numberSystem, let manufacturer, let product, let check): print("UPC-A: \(numberSystem), \(manufacturer), \(product), \(check).") case .QRCode(let productCode): print("QR code: \(productCode).") }
すべてのAssociated Valueの取り出しがlet、またはvarとして共通な場合は、caseの後ろにlet、varをまとめて書くことができる。 以下のように書ける。
switch productBarcode { case let .UPCA(numberSystem, manufacturer, product, check): print("UPC-A: \(numberSystem), \(manufacturer), \(product), \(check).") case let .QRCode(productCode): print("QR code: \(productCode).") }