Swift学习笔记——枚举
2015-08-23 16:21
501 查看
swift 中普通的枚举形式
相关值
原始值
// 枚举形式,case关键词表明新的一行成员值将被定义 enum Direction { case North case South case East case Weast } // 注意:在 swift 中,枚举的成员变量有着不同的值,他们不再是0,1,2,3 了 // 多个成员值也可以出现在同一行上,但是要用逗号隔开 enum Direction { case North,South,East,Weast }; // 这一句过后,unKnowDirection 就会被推断是 Direction 的一个可能值 var unKnowDirection = Direction.Weast // 一旦 unKnowDirection 被声明成一个 Direction ,就可以使用(.)语法将其设置成另一个 Direction 的值 unKnowDirection = .East switch unKnowDirection{ case .North: println("is North") case .South: println("is South") case .East: println("is East") case .Weast: println("is Weast") } // "is East"
相关值
enum ShopCode{ case UPCA(Int,Int,Int) case QRCode(String) } // let productCode = ShopCode.UPCA(8, 568_4556, 3) let productCode = ShopCode.QRCode("ABCDEFG") // 你可以在 switch 的 case 分支代码中提取每个相关值作为一个常量(用let前序)或作为一个变量(用 var 前序)来使用 switch productCode{ case let .UPCA( numberSystem, identifier, check ): println("UPCA is \(numberSystem) and \(identifier) and \(check)" ) case let .QRCode(productCode): println("i am so sorry is \(productCode)") } // "i am so sorry is ABCDEFG"
原始值
// 原始值可以是字符串,字符,或者任何整型值或浮点型值 enum ShopType:Int{ case income = 1 case pay case free } // 使用枚举成员的 rawValue 属性可以访问该枚举成员的原始值,只有具有原始值的枚举成员才有 rawValue 属性 let type = ShopType.income.rawValue // 也可以通过参数 rawValue 来创建定原始值的枚举 let type2 = ShopType(rawValue: 3) type2?.rawValue // 3 // 然而,并非所有可能的Int值都可以找到一个匹配的成员。正因为如此,构造函数可以返回一个可选的枚举成员。在上面的例子中,type2是ShopType?类型,或“可选的ShopType”。 // 如果通过构造函数 rawValue 来创建原始值枚举并作为条件需找,那么可选值 type3 为 .free,不再是 nil let typeToFind = 3 if let type3 = ShopType(rawValue: typeToFind){ // ?为可选值 switch type3{ case .income: println("income") case .free: println("free") default : println("nothing") } }else{ println("there is no find anything with \(typeToFind)") } // "free"
// 注意:相关值与原始值不同点是: //相关值是当你在创建一个基于枚举成员的新常量或变量时才会被设置,并且每次当你这么做得时候,它的值可以是不同的 //原始值是当你开始在你的代码中定义枚举的时候原始值是被预先填充的值
相关文章推荐
- Swift学习笔记之数组
- Swift版知乎日报
- Swift:UIKit中Demo(一)
- Swift入门(十)——循环引用、弱引用和无主引用
- Swift 那些二三事
- Swift学习笔记之字符串(总结)
- Swift详解之六----------------枚举、结构体、类
- swift 跳转页面
- swift 创建桥接头文件
- Swift面向对象介绍(一)
- 问答Swift2.0-基本运算符、字符串和字符
- swift初始化
- Swift-闭包简单使用
- Swift相关图书推荐
- swift 自定义TextField 的边框颜色和 左右 视图
- ios开发学习----swift学习之(一)基础数据类型
- 【Swift】学习笔记(九)——枚举
- swift -- swift学习笔记(1)
- 控制流
- 字符串和字符String and Characters