Swift学习笔记系列——(7)枚举

Swift学习笔记系列——(7)枚举,第1张

概述Tags: Swift 学习笔记 发布时间:2015-07-13 修改时间:2015-07-13 作者:Erwin 博客地址:技术杂货铺 欢迎转载,转载请注明出处。 Swift学习笔记系列——(7)枚举 枚举 Swift的枚举更像是类。 和C语言中的枚举不同点: 不必给每个枚举成员都提供值; 可以给枚举成员提供原始值,但要求类型相同; 枚举成员的原始值可以是字符串、字符、整型或浮点型; 枚举成员可

Tags: Swift 学习笔记

发布时间:2015-07-13
修改时间:2015-07-13
作者:Erwin
博客地址:技术杂货铺
欢迎转载,转载请注明出处。

Swift学习笔记系列——(7)枚举 枚举

Swift的枚举更像是类。
和C语言中的枚举不同点:
不必给每个枚举成员都提供值;
可以给枚举成员提供原始值,但要求类型相同;
枚举成员的原始值可以是字符串、字符、整型或浮点型;
枚举成员可以定义为联合数值,可以理解为一个元组;
枚举成员可以是不同的联合数值;
枚举有类的特性,可以有计算属性、实例方法、构造函数,可以扩展功能和实现协议;

枚举语法

用case定义枚举成员;
多个枚举成员可以写在一个case后面,用逗号分隔开来;
首字母大写;
已知枚举类型,赋值时可以省去枚举名称;

联合数值

使用联合数值,如同定义了枚举成员的类型;
联合数值可以理解为元组;
使用了联合数值的枚举,在比较时,其实比较的是联合数值的类型;
联合数值只有在创建了该枚举的常量或者变量后才会有值;

原始值

枚举成员的原始值类型要保持一致;
原始值在枚举定义的时候就有值了;
原始值要保持唯一性;
整数做原始值,没有给出的成员会用递增数字作原始值;

根据原始值的构造函数

定义时提供了原始值的枚举类型,可以用原始值初始化枚举成员,但是这个构造方法是可以失败的。用定义中不存在的原始值作参数,就会得到nil。

在switch语句匹配枚举

枚举类型已知,case语句中可以省去枚举类型;
switch必须涵盖全部分支,没有必要时,用default语句;
case语句中可以定义常量或者变量对应联合数值的项,供解析联合数值

switch​ ​productbarcode​ {​case​ .​UPCA​(​let​ ​numberSystem​,​let​ ​manufacturer​,​let​ ​product​,​let​ ​check​):​ ​println​(​"UPC-A: ​\(​numberSystem​)​,​\(​manufacturer​)​,​\(​product​)​,​\(​check​)​."​)​case​ .​QRCode​(​let​ ​productCode​):​ ​println​(​"QR code: ​\(​productCode​)​."​)​}​// prints "QR code: ABCDEFGHIJKLMnop."

case语句中定义定义常量或者变量对应联合数值,供解析联合数值,更简洁

switch​ ​productbarcode​ {​case​ ​let​ .​UPCA​(​numberSystem​,​manufacturer​,​product​,​check​):​ ​println​(​"UPC-A: ​\(​numberSystem​)​,​\(​check​)​."​)​case​ ​let​ .​QRCode​(​productCode​):​ ​println​(​"QR code: ​\(​productCode​)​."​)​}​// prints "QR code: ABCDEFGHIJKLMnop."
本章思维导图 总结

以上是内存溢出为你收集整理的Swift学习笔记系列——(7)枚举全部内容,希望文章能够帮你解决Swift学习笔记系列——(7)枚举所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1086532.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存