• Swift-8-枚举


    // Playground - noun: a place where people can play
    
    import UIKit
    
    // 枚举语法
    enum SomeEnumeration {
        // enumeration definition goes here
    }
    // 定义一个枚举
    enum CompassPoint {
        case North
        case South
        case East
        case West
    }
    // 声明枚举时,并不会像C/OC那样为枚举成员赋默认值
    // 多个枚举成员出现在一行用逗号隔开
    enum Planet {
        case Mercury, Venus, Earth, Mars
    }
    
    var directionHead = CompassPoint.West
    // 变量directionHead现在已知为CompassPoint类型,再次赋值时可以省略枚举类型
    directionHead = .South
    
    // 通过Switch匹配枚举值
    switch directionHead {
        case .North:
            println("north")
    case .South:
        println("south")
    case .West:
        println("west")
    case .East:
        println("east")
    default:
        break
    }
    
    // 关联值 Associated Values
    enum BarCode {
        case UPCA(Int, Int, Int, Int) // UPCA 类型为(Int, Int, Int, Int)
        case QRCode(String) // QRCode 类型为 (String)
    }
    
    var productCode = BarCode.UPCA(8, 890, 89, 99)
    productCode = .QRCode("ABCDEFG")
    
    // 提取关联值 使用let还是var根据case语句内的使用情况决定
    switch productCode {
        case .UPCA(let a1, let a2, let a3, let a4):
            println("UPCA:(a1)-(a2)-(a3)-(a4)")
        case .QRCode(let s1):
            println("QRCode:(s1)")
        default:
            break
    }
    
    // 原始值 Raw Values
    enum ASCIIControlCharacter: Character {
        case Tab = "	"
        case LineFeed = "
    "
        case CarriageReturn = "
    "
    }
    
    // 注意:原始值和关联值是不同的。对于一个特性的枚举成员,它的原始值始终是定义枚举时预设的值,而关联值当你通过一个枚举成员创建变量或者常量时会被设置,每一次都可以不一样
    
    // 当整数[ntegers]被用于初始化原始值时,如果其它成员没有特别指定初始值,原始值将会自增
    enum SomePlanet: Int {
        case Mercury = 1, Venus, Earth, Mars, Jupiter, Santurn, Uranus, Neptune
    }
    
    // 通过rawValue属性访问枚举成员
    let earthsOrder = SomePlanet.Earth.rawValue
    
    // 通过原始值初始化实例
    let possiblePlanet = SomePlanet(rawValue: 7) // 返回值为optional?
  • 相关阅读:
    C#编程规范
    实用JavaScript代码库
    JSON入门
    asp.net基本事件
    iOS开发笔记 3、iOS基础
    iOS开发笔记 8、真机调试和发布软件
    数据同步框架MS Sync Framework不同场景使用例子和简要分析
    使用AppFabric 承载WCF和WF服务实例分析和说明
    .net程序员的iPhone开发MonoTouch
    iOS开发笔记 4、iOS中的Cocoa、设计模式等
  • 原文地址:https://www.cnblogs.com/liufeng24/p/4117190.html
Copyright © 2020-2023  润新知