IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Swift中enum(枚举)使用详情 -> 正文阅读

[移动开发]Swift中enum(枚举)使用详情

1.枚举语法

1.用enum关键字来定义一个枚举,然后将其所有的定义内容放在一个大括号({})中;
2.多个成员值可以出现在同一行中,要用逗号隔开.

    enum CompassPoint {
        case north
        case south
        case east
        case west
        
    }

2.使用Switch语句来匹配枚举值

你可以使用Switch语句来匹配每一个单独的枚举值.

 let directionToHead = CompassPoint.south
        
        switch directionToHead
        {
        case .north:
            print("11111")
        case .south:
            print("2222")
        case .east:
            print("33333")
        case .west:
            print("4444")
        }


    enum CompassPoint {
        case north
        case south
        case east
        case west
        
    }

3.遍历枚举的case

对于某些枚举来说,如果能够有一个集合包含了枚举的所有情况就好了.你可以通过在枚举名字后面写:CaseIterable来允许枚举被遍历.Swift会暴露一个包含对应枚举类型所有情况的集合名为allCases

        let number = points.allCases.count
        
        for direction in points.allCases {
            
            print(direction)
        }



    enum points :CaseIterable{
        case north
        case south
        case east
        case west
        
    }

4.关联值

        var product = Barcode.upc(8, 85909, 51226, 3)
        print(product)
        product = .qrCode("qwertyuiop")
        print(product)

    enum Barcode {
        case upc(Int,Int,Int,Int)
        case qrCode(String)
    }
    

5.原始值

枚举成员可以用相同类型的默认最预先填充(成为原始值).

    enum ASCIIControlChatacter: Character {
        case tab = "\t"
        case lineFeed = "\n"
        case carriageReturn = "\r"
    }

6.预设原始值

当你在操作存储值整数或字符串原始值枚举的时候,你不必显示的给每一个成员都分配一个原始值.当你没有分配时,Swift将会自动为你分配值.

    enum CompassPoint: Int{
        case north = 1,south,east,west
    }

7.从原始值初始化

如果你用原始值类型来定义一个枚举,那么枚举就会自动收到一个可以接受原始值类型的值得初始化器(叫做rawValue的形式参数)然后返回一个枚举成员或者nil.你可以使用这个初始化器来尝试创建一个枚举的新实例.

let directionToHead = CompassPoint(rawValue: 3)

8.递归枚举

递归枚举是拥有另一个枚举作为枚举成员关联值的枚举.当编译器作递归枚举时必须插入间接寻址层.你可以在声明枚举成员之前使用indirect关键字来明确他是递归的.

        let five = ArithmetcExpression.number(5)
        let four = ArithmetcExpression.number(4)
        let sum = ArithmetcExpression.addition(five, four)
        let product = ArithmetcExpression.multiplication(sum, ArithmetcExpression.number(2))
         print(evaluate(product))


   indirect enum ArithmetcExpression {
       
       case number(Int)
       case addition(ArithmetcExpression,ArithmetcExpression)
       case multiplication(ArithmetcExpression,ArithmetcExpression)
    }
    
    func evaluate(_ expression: ArithmetcExpression) -> Int {
        
        switch expression {
        case let .number(value):
            return value
            
        case let .addition(left, right):
            return evaluate(left)+evaluate(right)
            
        case let .multiplication(left, right):
            return evaluate(left)*evaluate(right)
        }
    }
    
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-05-09 12:51:06  更:2022-05-09 12:53:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 1:46:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码