kerkerj
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"))
這個部分雖然不多,但是很實用