iT邦幫忙

DAY 8
2

Swift - 從菜菜鳥到菜鳥的 30 天系列 第 8

Playground - Enumerations

  • 分享至 

  • xImage
  •  

小弟的規劃表 - http://blog.kerkerj.in/blog/2014/11/01/planning/

好讀版 - http://blog.kerkerj.in/blog/2014/10/08/swift-d8/

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

也是很方便的東西

列舉語法

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"))

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


上一篇
[Swift-d7] - Playground - Closures
下一篇
[Swift-d9] - Playground - Class, Struct
系列文
Swift - 從菜菜鳥到菜鳥的 30 天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
henryfan
iT邦新手 5 級 ‧ 2014-10-13 10:40:25

列舉建構的好,感覺可以用很聰明的方法解決很多判斷上的問題!太棒了

我要留言

立即登入留言