Swift学习——A Swift Tour 枚举和结构体
2014-06-05 09:47
381 查看
Enumerations and Structures
Enumerations 枚举的使用
使用 enum 定义一个枚举,枚举里面可以关联方法,比如下文中的描述方法
使用 toRaw 和 fromRaw 两个函数,实现原始值和枚举值之间进行切换
其实根据上面两个代码,不难分析,fromRaw 的功能是,在参数中提供枚举的实际值(如3),通过实际值转换成枚举的原始值
toRaw 的功能是,根据枚举的原始值(如Ace),转化成实际值,也就是Ace实际代表的值1
枚举还支持成员上的关联,同一个枚举的不同成员可以关联不同的值:
Structures 结构体的使用
使用 struct 创建结构,结构支持构造器和方法这些特性,结构和类的最大区别:结构体的实例是值传递,类的实例是引用传递
下一节我们说说协议和扩展
Enumerations 枚举的使用
使用 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.toRaw()) } } } let ace = Rank.Ace let aceRawValue = ace.toRaw()上面的例子中,定义的原始值枚举类型是Int型,只需要给第一个定义的枚举值赋初值,其他的值就会按顺序分配,你也可以使用浮点型和String类型作为枚举的原始类型
使用 toRaw 和 fromRaw 两个函数,实现原始值和枚举值之间进行切换
if let convertedRank = Rank.fromRaw(3) { let threeDescription = convertedRank.simpleDescription() }
其实根据上面两个代码,不难分析,fromRaw 的功能是,在参数中提供枚举的实际值(如3),通过实际值转换成枚举的原始值
toRaw 的功能是,根据枚举的原始值(如Ace),转化成实际值,也就是Ace实际代表的值1
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()在枚举中的描述函数,case 中的内容应该带上 . ,因为self是存在的, .Spades 表示的是Sapdes 的枚举值
枚举还支持成员上的关联,同一个枚举的不同成员可以关联不同的值:
enum ServerResponse { case Result(String, String) case Error(String) } let success = ServerResponse.Result("6:00 am", "8:09 pm") let failure = ServerResponse.Error("Out of cheese.") switch success { case let .Result(sunrise, sunset): let serverResponse = "Sunrise is at \(sunrise) and sunset is at \(sunset)." case let .Error(error): let serverResponse = "Failure... \(error)" }
Structures 结构体的使用
使用 struct 创建结构,结构支持构造器和方法这些特性,结构和类的最大区别:结构体的实例是值传递,类的实例是引用传递
struct Card { var rank: Rank var suit: Suit func simpleDescription() -> String { return "The \(rank.simpleDescription()) of \(suit.simpleDescription())" } } let threeOfSpades = Card(rank: .Three, suit: .Spades) let threeOfSpadesDescription = threeOfSpades.simpleDescription()
下一节我们说说协议和扩展
相关文章推荐
- swift基础学习(04)[闭包、函数、枚举、类和结构体]
- Swift 系统学习 30 枚举 结构体 类 遵循协议 protocol
- swift 数组、字典、集合、结构体、枚举——swift学习(四)
- swift学习笔记之---数组、字典、枚举、结构体
- Swift语言学习4--枚举和结构体
- iOS学习笔记44-Swift(四)枚举和结构体
- Swift 学习笔记 [2] 类 结构体 枚举
- Swift_学习笔记_枚举和结构体
- swift学习笔记3——类、结构体、枚举
- iOS学习笔记44-Swift(四)枚举和结构体
- Swift 学习之枚举和结构体—003
- Swift学习之路 -- 枚举和结构体
- Swift学习——A Swift Tour 条件语句
- Swift 的类、结构体、枚举等的构造过程Initialization(下)
- Swift编程语言学习8—— 类与结构体
- Swift 的类、结构体、枚举等的构造过程Initialization(下)
- iOS开发学习笔记 2-8 C语言部分 联合 枚举 结构体
- swift 笔记 (十一) —— 方法(类,结构体,枚举)
- C语言学习入门 (八) 结构体和枚举
- Swift-枚举和结构体