Playground - Enumerations

通常會使用來定義一組相關的值

也是很方便的東西

列舉語法

enum SomeEnumeration {
  // enumeration definition goes here
}

比方說,車子

enum Car {
	case toyota
	case benz
	case BMW
}

也可以這樣寫

enum Car {
	case toyota, benz, BMW
}

使用:

var car = Car.benz

和 Switch 的搭配

enum Car {
    case Toyota, Benz, BMW
}

var car = Car.Benz

switch car {
case .Toyota:
    println("Toyota")
case .Benz:
    println("Benz")
case .BMW:
    println("BMW")
}

Associated Values

以 Barcode 來舉例子

enum Barcode {
    case UPCA(Int, Int, Int)
    case QRCode(String)
}

var productBarcode = Barcode.UPCA(12, 8948, 333)

我們可以借此來定義一些結構

Raw Values

我們可以先給定預設值:

enum Barcode: String {
    case UPCA = "upca"
    case QRCode = "qrcode"
}

var productBarcode = Barcode.UPCA
println(productBarcode.toRaw())

可以透過 raw value 來找尋

println(Barcode.fromRaw("qrcode"))

這個部分雖然不多,但是很實用