swift语言学习-10.枚举
swift 10 枚举 枚举语法枚举,Enumerations,和在c语言中的数据类型很像,它也是定义了一个通用类型的一组相关的值。 像这样子定一个一个枚举: enum SomeEnumeration { case ** //enumeration definition goes here } 关键字 以下是定义了一个指南针四个方向的枚举: enum compasspoint { case North case South case East case West } 多个成员,可以出现在一行上,可以只用一个 enum compasspoint { case North,South,East,West } 每个枚举定义了一个全新的类型。像 Swift 中其他类型一样,它们的名字(例如CompassPoint)必须以一个大写字母开头。给枚举类型起一个单数名字而不是复数名字,以便于读起来更加容易理解。 我们可以像这样子来读取一个枚举里的某一个值: var directionToHead = CompassPoint.West directionToHead的类型被推断当它被CompassPoint的一个可能值初始化。一旦directionToHead被声明为一个CompassPoint,你可以使用更短的点 directionToHead = .East directionToHead的类型已知时,当设定它的值时,你可以不再写类型名。使用显式类型的枚举值可以让代码具有更好的可读性。 PS: 妈的,说实话,上面这几段真没看懂,完全不知道在讲些啥! 匹配枚举值和Switch语句我们可以匹配单个枚举值和switch
你可以如此理解这段代码: “考虑directionToHead的值。当它等于.North,打印“Lots of planets have a north”。当它等于.South,打印“Watch out for penguins”。” 原始值上面讲的还只是基本的一个定义枚举,枚举也是可以定义默认值的,也就是原始值。 上面的枚举 原始值可以是 比如这个例子: 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。 我们用上面的 这个范例使用可选绑定(optional binding),通过原始值9试图访问一个行星。if let somePlanet = Planet(rawValue: 9)语句获得一个可选Planet,如果可选Planet可以被获得,把somePlanet设置成该可选Planet的内容。在这个范例中,无法检索到位置为9的行星,所以else分支被执行。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |