1、Enum 的创建

1.1 标准定义

  • 枚举的定义

        enum CompassPoint {
    
            case North
            case South
            case East
            case West
        }
    
        enum Planet {
    
            // 多个成员的值出现在一行上
            case Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune
        }
  • 枚举的使用

        // direction 的类型是已知的,所以可以在设定它的值时,不写该类型
        var direction:CompassPoint = .West
    
        // 如果 switch 的条件声明在同一个函数内,这时会提示 Switch condition evaluates to a constant,
        // 要去除这个,只需要将声明的变量放在函数外就可以
        switch direction {
    
            case .North: 
    
                print("Lots of planets have a north")
    
            case .South: 
    
                print("Watch out for penguins")
    
            case .East: 
    
                print("Where the sun rises")
    
            case .West: 
    
                print("Where the skies are blue")
        }

1.2 关联值定义

  • 枚举的定义

        enum Barcode {
    
            // 每个枚举成员设定一个或多个关联值
            case UPCA(Int, Int, Int)
            case QRCode(String)
        }
  • 枚举的使用

        var productBarcode1:Barcode = .UPCA(8, 85909_51226, 3)
        var productBarcode2 = Barcode.QRCode("ABCDEFGHIJKLMNOP")
    
        switch productBarcode1 {
    
            case .UPCA(let numberSystem, let identifier, let check):
    
                print("UPC-A with value of \(numberSystem), \(identifier), \(check).")
    
            case .QRCode(let productCode):
    
                print("QR code with value of \(productCode).")
        }
    
        switch productBarcode2 {
    
            // 如果所有的枚举成员的关联值的提取为常数,或者当所有被提取为变量,
            // 为了简洁起见,可以放置一个 var 或 let 标注在成员名称前
            case let .UPCA(numberSystem, identifier, check):
                print("UPC-A with value of \(numberSystem), \(identifier), \(check).")
    
            case let .QRCode(productCode):
    
                print("QR code with value of \(productCode).")
        }

1.3 原始值定义

  • 枚举的定义

        // 带原始值的定义格式
        enum Seasons:Int {
    
            case spring = 1
            case summer
            case autumn
            case winter
        }
  • 枚举的使用

        var seas = Seasons.spring
    
        // 获取枚举成员的原始值
        print(seas.rawValue)
    
        // 找到一个特定的原始值枚举成员
        seas = Seasons(rawValue: 3)!
    
        print(seas.rawValue)

iOS - Swift Enum 枚举的更多相关文章

  1. Swift Enum 枚举

    前言 枚举是一种自定义的数据类型,在 Swift 中枚举类型拥有相当高的自由度.在 Swift 语言中枚举是一级类型,它拥有在其他语言中只有类才拥有的一些特性,比如实例方法,实例构造器等. 枚举声明的 ...

  2. iOS - OC Enum 枚举

    前言 iOS 5.0 之后,提供了新的枚举定义方式,定义枚举的同时,可以指定枚举中数据的类型. typedef NS_OPTIONS(_type, _name) new; -> 位移的,可以使用 ...

  3. Swift enum(枚举)使用范例

    //: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...

  4. iOS - Swift 与 C 语言交互编程

    前言 作为一种可与 Objective-C 相互调用的语言,Swift 也具有一些与 C 语言的类型和特性,如果你的代码有需要,Swift 也提供了和常见的 C 代码结构混合编程的编程方式. 1.基本 ...

  5. Swift 中枚举

    Swift 中枚举高级用法及实践 字数11017 阅读479 评论0 喜欢20 title: "Swift 中枚举高级用法及实践"date: 2015-11-20tags: [AP ...

  6. swift 的枚举、结构体、类

    一.Swift的枚举 枚举是一系相关联的值定义的一个公共的组类型,同时能够让你在编程的时候在类型安全的情况下去使用这些值.Swift中的枚举比OC中的枚举强大得多, 因为Swift中的枚举是一等类型, ...

  7. iOS - Swift Foundation 框架

    前言 框架是由许多类.方法.函数和文档按照一定的逻辑组织起来的集合,以使研发程序更容易. Foundation 框架:为所有程序开发奠定基础的框架称为 Foundation 框架. Cocoa :是指 ...

  8. iOS - Swift 基本语法

    前言 Swift 全面支持 Unicode 符号. Swift 中的定义和实现是在同一个单元中的,通常一个 Swift 源代码单文件是以 ".Swift" 结尾的. Swift 不 ...

  9. ios Swift 动手写

    Swift语言概览 基本概念 注:这一节的代码源自The Swift Programming Language中的A Swift Tour. Hello, world 类似于脚本语言,下面的代码即是一 ...

随机推荐

  1. Spring和MyBatis环境整合

    SSH框架的结合几乎家喻户晓,但是一般的中小项目,使用Spring和MyBatis就够了,而且MyBatis轻便好使,易上手,值得大家尝试一次. 开篇简介: Spring: Spring是一个轻量级的 ...

  2. JavaEE基础(二十三)/递归

    1.File类递归练习(统计该文件夹大小) 需求:1,从键盘接收一个文件夹路径,统计该文件夹大小 2.File类递归练习(删除该文件夹) 需求:2,从键盘接收一个文件夹路径,删除该文件夹 3.File ...

  3. oracle-odu小试牛刀--恢复drop表的数据

         现在进入oracle12c时代:普遍用的oracle版本为10g以上.在oracle10g之后提供了一个回收的机制.所以恢复drop表的数据以及表很容易.当然需要打开回收机制以及是归档模式. ...

  4. Asp.net mvc5 系列笔记

    程序版本 vs 2015  1.0.0-beta4  ,得到你的肯定是我最大的动力. Asp.net Vnext 调试源码 Asp.net Vnext 自定义日志 Asp.net Vnext 中间件实 ...

  5. PRINCE2七大原则(1)

    PRINCE2七大原则(1) 我们先来回顾一下,PRINCE2七大原则分别是持续的业务验证,经验学习,角色与责任,按阶段管理,例外管理,关注产品,剪裁. 第二个原则:吸取经验教训. PRINCE2要求 ...

  6. 凯撒加密解密(java字母移位)

    1.设计思想:加密就是将字符数据转化为ASC码表中的数字,a—w之间通过加3之后再转化为字符型输出,x—z之间通过转化为ASC码表中的数字后减去23再转化为字符型输出.解密就是将字符数据转化为ASC码 ...

  7. Winform中如何实现子窗体刷新父窗体

    原理:利用委托和事件,本文将以图文并茂的例子讲述,告诉我们So Easy --------------------------------------------------------------- ...

  8. JQuery知识快览之一—选择器

    阅读指导:本文参考最新的1.10.2版写成,针对用得比较多的1.4版,所有1.5版之后的函数都会注明哪一版新增.对于熟悉1.4版想学1.10版的请直接搜索"新增". JQuery是 ...

  9. Kernel启动时 驱动是如何加载的module_init,加载的次序如何;略见本文

    Init.h中有相关initcall的启动次序,在system.map中可看出具体的__initcall指针的前后次序 #define pure_initcall(fn) __define_initc ...

  10. Codeforces Round #370 (Div. 2) B

    Description Memory is performing a walk on the two-dimensional plane, starting at the origin. He is ...