zoukankan      html  css  js  c++  java
  • SWIFT Enumeration(2)

    之前记录了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)")
    }
    
  • 相关阅读:
    golang并发编程:通道
    golang并发编程:并发同步概述
    java网络通信:TCP协议
    Java基础:GC机制
    Java基础:内存模型
    Java基础:泛型
    Java基础:异常机制
    JavaWEB开发框架:Shiro
    Spring:与Redis的集成
    Spring:面向切片编程
  • 原文地址:https://www.cnblogs.com/foxting/p/4417837.html
Copyright © 2011-2022 走看看