- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)