swift语言学习-10.枚举

swift语言学习-10.枚举,第1张

概述swift 10 枚举 swift更好排版:https://zybuluo.com/phper/note/82839 枚举语法 枚举,Enumerations,和在c语言中的数据类型很像,它也是定义了一个通用类型的一组相关的值。 像这样子定一个一个枚举: enum SomeEnumeration { case ** //enumeration definition goes her swift 10 枚举

swift更好排版:https://zybuluo.com/PHPer/note/82839


枚举语法

枚举,Enumerations,和在c语言中的数据类型很像,它也是定义了一个通用类型的一组相关的值。

像这样子定一个一个枚举:

enum SomeEnumeration {    case **    //enumeration deFinition goes here}

关键字enum打头 ,接枚举name,再用{}花括号包围住。里面的成员用case申明,有点像switch

以下是定义了一个指南针四个方向的枚举:

enum compasspoint {    case north    case South    case East    case West}

多个成员,可以出现在一行上,可以只用一个case,然后用,隔开就可以了:

enum compasspoint {    case north,South,East,West}

每个枚举定义了一个全新的类型。像 Swift 中其他类型一样,它们的名字(例如Compasspoint)必须以一个大写字母开头。给枚举类型起一个单数名字而不是复数名字,以便于读起来更加容易理解。

我们可以像这样子来读取一个枚举里的某一个值:

var directionTohead = Compasspoint.West

directionTohead的类型被推断当它被Compasspoint的一个可能值初始化。一旦directionTohead被声明为一个Compasspoint,你可以使用更短的点.语法将其设置为另一个Compasspoint的值:

directionTohead = .East

directionTohead的类型已知时,当设定它的值时,你可以不再写类型名。使用显式类型的枚举值可以让代码具有更好的可读性。

PS: 妈的,说实话,上面这几段真没看懂,完全不知道在讲些啥!

匹配枚举值和Switch语句

我们可以匹配单个枚举值和switch

                                                                                    enum compasspoint { case north,SouthEastWest}var directionTohead = compsspoint.East//省略里,用.代替,可以自动识别。directionTohead  Southswitch{: #可以省略 println("Lots of planets have a north")"Watch out for penguins""Where the sun rises""Where the skIEs are blue"default"Not a safe place for humans")}// 输出 "Watch out for penguins”

你可以如此理解这段代码:

“考虑directionTohead的值。当它等于.north,打印“Lots of planets have a north”。当它等于.south,打印“Watch out for penguins”。”

原始值

上面讲的还只是基本的一个定义枚举,枚举也是可以定义默认值的,也就是原始值。

ASCIIControlCharacterCharacterTab "\t"lineFeed"\n"CarriageReturn"\r"}

上面的枚举ASCIIControlCharacter被申明成Character字符类型,然后,它有3个值,每个值都有一个原始值。

原始值可以是字符串字符,或者任何整型值浮点型值。每个原始值在它的枚举声明中必须是唯一的。当整型值被用于原始值,如果其他枚举成员没有值时,它们会自动递增。

比如这个例子:

PlanetIntMercury 1VenusEarthMarsJupiterSaturnUranusNeptune 我们就给Mercury设置里原始值为1,其他的没有设置,刚才说过,如果是整型用与原始值,其他没设置,是会自增的。所以,Planet.Venus = 2,Planet.Earth = 3 .....

rawValue方法可以或者一个枚举成员的原始值

let earthsOrder = Planet.Earth.rawValue// earthsOrder is 3

也通过参数为rawValue构造函数创建特定原始值的枚举。

let possiblePlanet = Planet(rawValue: 7)// possiblePlanet is of type Planet? and equals Planet.Uranus

在上面的例子中,possiblePlanet是哥“可选的Planet” 等于Planet.Uranus。

我们用上面的switch来匹配下是不是等于Uranus

let positionToFind 9if somePlanet (rawValue positionToFind)"Mostly harmless"}}else"There isn't a planet at position \(positionToFind)"// 输出 "There isn't a planet at position 9

这个范例使用可选绑定(optional binding),通过原始值9试图访问一个行星。if let somePlanet = Planet(rawValue: 9)语句获得一个可选Planet,如果可选Planet可以被获得,把somePlanet设置成该可选Planet的内容。在这个范例中,无法检索到位置为9的行星,所以else分支被执行。

总结

以上是内存溢出为你收集整理的swift语言学习-10.枚举全部内容,希望文章能够帮你解决swift语言学习-10.枚举所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存