Swift Syntax 01 - 枚举类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift Syntax 01 - 枚举类型相关的知识,希望对你有一定的参考价值。
阅读资料来源:官方Swift2.0教程中文版
今天学习了Swift的枚举类型,以下是内容和总结:
使用 enum 来创建枚举。像类一样,枚举也可以包含方法。
enum Rank: Int { case Ace =1 case Two, Three, Four, Five, Six, Seven, Eight, Nine, Ten case Jack, Queen, King func simpleDescription() -> String { switch self { case .Ace: return "ace" case .Jack: return "jack" case .Queen: return "queen" case .King: return "king" default: return String(self.rawValue) } } } let ace = Rank.AceletaceRawValue = ace.rawValue
练习:
写一个函数,通过原始值来比较两个 Rank 实例。
在上面的例子中,枚举原始值的类型是 Int,所以你只需设置第一个 case 的原始值。剩下的原始值会按照顺序赋值。你也可以使用字符串或者浮点数作为枚举的原始值。使用 rawValue 属性来访问一个枚举成员的原始值。
使用 init?(rawValue:) 构造方法在原始值和枚举之间进行转换。
if let convertedRank = Rank(rawValue:3) { let threeDescription = convertedRank.simpleDescription() }
如果没用到原始值,可以不设置。
enum Suit { case Spades, Hearts, Diamonds,Clubs func simpleDescription()-> String { switch self { case .Spades: return "spades" case .Hearts: return "hearts" case .Diamonds: return "diamonds" case .Clubs: return "clubs" } } } let hearts = Suit.Hearts let heartsDescription = hearts.simpleDescription()
注意,有两种方式引用 Hearts 成员:给 hearts 常量赋值时,因为它没有显式指定类型,所以 Suit.Hearts 用全名来表示。在 switch 里,因为已知 self 的类型,所以枚举成员可以使用缩写如 .Hearts 来引用。
以上是关于Swift Syntax 01 - 枚举类型的主要内容,如果未能解决你的问题,请参考以下文章
如何区分 Swift 3.0 中的类(确定它不是结构或枚举)[重复]
swift_枚举 | 可为空类型 | 枚举关联值 | 枚举递归 | 树的概念