第十一章 枚举 - Enumerations.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
枚举 - Enumerations 枚举 (Enumerations) 枚举定义了⼀个通⽤类型的⼀组相关的值,使你可以在你的代码中以⼀个安全的⽅式 来使⽤这 值。 如果你熟悉 C 语⾔,你就会知道,在 C 语⾔中枚举指定相关名称为⼀组整型值。 Swift 中的枚举更加灵活,不必给每⼀个枚举成员提供⼀个值。如果⼀个值 (被认为 是“原始”值)被提供给每个枚举成员,则该值可以是⼀个字符串,⼀个字符,或是⼀ 个整型值或浮点值。 此外,枚举成员可以指定任何类型的相关值存储到枚举成员值中,就像其他语⾔中的 联合体 (unions )和变体 (variants )。你可以定义⼀组通⽤的相关成员作为枚举的⼀ 部分,每⼀组都有不同的⼀组与它相关的适当类型的数值。 在 Swift 中,枚举类型是⼀等 (first-class )类型。它们采⽤了很多传统上只被类 (class )所⽀持的特征,例如计算型属性 (computed properties ),⽤于提供关于枚举 当前值的附加信息, 实例⽅法 (instance methods ),⽤于提供和枚举所代表的值相关 联的功能。枚举也可以定义构造函数 (initializers )来提供⼀个初始成员值;可以在原 始的实现基础上扩展它们的功能;可以遵守协议 (protocols )来提供标准的功能。 欲了解更多相关功能,请参见属性 (Properties ),⽅法 (Methods ),构造过程 (Initialization ),扩展 (Extensions )和协议 (Protocols )。 枚举语法 使⽤enum关键词并且把它们的整个定义放在⼀对⼤括号内: enum SomeEnumeration { // enumeration definition goes here } 以下是指南针四个⽅向的⼀个例⼦: enum CompassPoint { case North case South case East case West } ⼀个枚举中被定义的值 (例如 North,South,East和West)是枚举的成员值 (或 者成员)。case关键词表明新的⼀⾏成员值将被定义。 注意: 不像 C 和 O jective-C ⼀样,Swift 的枚举成员在被创建时不会被赋予⼀ 个默认的整数值。在上⾯的CompassPoints例⼦ 中,North,South,East和West不是隐式的等于0,1,2和3。相反 的,这 不同的枚举成员在CompassPoint的⼀种显⽰定义中拥有各⾃ 不同的值。 多个成员值可以出现在同⼀⾏上,⽤逗号隔开: enum Planet { case ercury, Venus, Earth, ars, Jupiter, Saturn, Uranus, } 每个枚举定义了⼀个全新的类型。像 Swift 中其他类型⼀样,它们的名字 (例如 CompassPoint和Planet)必须以⼀个⼤写字母开头。给枚举类型起⼀个单数名字 ⽽不是复数名字,以便于读起来更加容易理解: var directionToHead = CompassPoint.West directionToHead的类型被推断当它被CompassPoint的⼀个可能值初始化。⼀旦 directionToHead被声明为⼀个CompassPoint,你可以使⽤更短的点 (.)语法 将其设置为另⼀个CompassPoint的值: directionToHead = .East directionToHead的类型已知时,当设定它的值时,你可以不再写类型名。使⽤显 式类型的枚举值可以让代码具有更好的可读性。 匹配枚举值和Switch语句 你可以匹配单个枚举值和switch语句: directionToHead = .South switch directionToHead { case .North: println(Lots of planets have a north) case .South: println(Watch out for penguins) case .East: pri

文档评论(0)

xiaofei2001128 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档