Swift 个人学习笔记 - 07: 枚举
本文章纯粹是中文版《The Swift Programming Language》的学习笔记,所以绝大部分的内容都是文中有的。本文是本人的学习笔记,不是正式系统的记录。仅供参考 以下还是有很多没看懂、不确定的地方,我会以“存疑”的注解指出。 在此感谢中文版翻译者,这极大地加快了 Swift 的学习速度。 本文地址:http://www.52php.cn/article/p-vbgocblq-d.html Reference:原版:The Swift Programming Language
枚举Swift 中的枚举不需要对应真实的值。枚举的值可以是 基本语法: enum CompassDirection { case north case south case east case west } 初始化和赋值: var dirToHead = CompassDirection.west dirToHead = .east 注意值处理都需要在前面加上 “ 需要注意的是,如果将 enum 用在 switch 语句中,需要
关联值enum Barcode { case upc(Int,Int,Int) case qrCode(String) } 上面这段语法的意思是:定义一个叫做 赋值: var productBarcode = Barcode.upc(8,85907,51226,3) productBarcode = .qrCode("ABCDEFG") Swift 写法: switch productBarcode { case .upc(let numberSystem,let manufacturer,let product,let check): print("UPC: (numberSystem),(manufacturer),(product),(check).") case .qrCode(let productCode): print("QR code: (productCode).") } 如果变量里面统一是使用 switch productBarcode { case let .upc(numberSystem,manufacturer,product,check): print("UPC : (numberSystem),(check).") case let .qrCode(productCode): print("QR code: (productCode).") }
原始值enum ASCIIControlCharacter: Character { case tab = "t" case lineFeed = "n" case carriageReturn = "r" } 上面的例子告诉我们,可以指定 enum 的原始值类型。 如果没有给 enum 显示指定值类型,那么 Swift 会默认将每个值的原始值设置为其名字本身的 String 类型。 enum Planet: Int { case mercury = 1,venus,earth,mars,jupiter,saturn,uranus,neptune } 这个时候,我们会涉及到一个构造方法: let possiblePlanet = Planet(rawValue: 7) 注意,此时的 possiblePlanet 变量类型是 “
递归变量暂时不看。需要注意的是 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |