SWIFT Enumeration(2)

简介: 之前记录了Swift Enumeration(1),这篇算是它的延续吧,继续说下Enumeration,看以下定义 enum TrainStatus {     case OnTime     case Delay(Int) //带关联值 } var myTrainStatus = TrainStatus.

之前记录了Swift Enumeration(1),这篇算是它的延续吧,继续说下Enumeration,看以下定义

enum TrainStatus {

    case OnTime

    case Delay(Int) //带关联值

}

var myTrainStatus = TrainStatus.Delay(10)

用Switch 匹配对象

switch myTrainStatus{

case .OnTime:

    println("Train is ontime")

case .Delay(let minutes): 

    println("Train delays \(minutes) minutes")

}

匹配方式是有先后顺序的,上面中先匹配到Delay然后再给里面的minutes赋值,好下面我将演示区间匹配。

switch myTrainStatus{

case .OnTime://匹配准时

    println("Train is ontime")

case .Delay(1...5)://匹配1到5

    println("Train delays less than five minutes")

case .Delay(6...10)://匹配6到10

    println("Train delays between six and ten minutes")

case .Delay(_): //匹配其它,里面是下划线

    println("Train delays more than ten minutes")

}

 

关联值的另一个例子,

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

var productCodeA:Barcode = Barcode.UPCA(10, 20, 30, 40)
var productCodeB:Barcode = Barcode.QRCode("This is an infomation")

switch productCodeB{
case .UPCA(let a,let b,let c,let d):
    print("\(a)-\(b)-\(c)-\(d)")
case .QRCode(let code):
    print("\(code)")
}

 

目录
相关文章
|
6月前
|
存储 Swift iOS开发
在Swift编程语言中,集合类型`Set`
在Swift编程语言中,集合类型`Set`
57 2
|
6月前
|
存储 安全 Swift
Swift 语言:什么是 Swift 的泛型(Generics)?
Swift 语言:什么是 Swift 的泛型(Generics)?
86 0
|
Swift iOS开发
9 如何在Swift中使用Optional
如何在Swift中使用Optional
71 2
|
15天前
|
Swift 索引 容器
Swift 泛型-关联类
Swift 泛型-关联类
20 1
|
16天前
|
存储 Swift
Swift 泛型
Swift 泛型
23 2
|
16天前
|
Swift 索引
Swift 泛型-类型约束
Swift 泛型-类型约束
23 1
|
20天前
|
Swift iOS开发
Swift 方法
10月更文挑战第29天
16 4
|
20天前
|
存储 Swift iOS开发
Swift 类
10月更文挑战第29天
11 0
|
6月前
|
存储 Swift 索引
在 Swift 编程语言中,集合类型 `Set`
在 Swift 编程语言中,集合类型 `Set`
65 1
|
存储 编译器 Swift
Swift5.1—集合类型
Swift5.1—集合类型
110 0
Swift5.1—集合类型