Object-C--->Swift之(八)枚举
来源:互联网 发布:科荣软件 编辑:程序博客网 时间:2024/05/16 07:21
声明枚举
Swift使用enum定义枚举,语法格式为
enum 枚举名{//使用case关键字列出所有枚举值//枚举的其他成员}
Swift即允许每个枚举值单独用一个case关键字,也允许使用一个case定义多个枚举值,多个枚举值之间以英文逗号隔开。枚举名从程序可读性方面来看,swift枚举名必须是有一个或多个有意义的单词连缀而成的,每个单词首字母大写,其他字母全部小写,单词与单词之间不要使用任何分割符。
enum Weekday{case Mondaycase Tuesdaycase Wednesdaycase Thursdaycase Fridaycase Staturdaycase Sunday}
调用枚举
var day:Weekday day=Weekday.Sunday
当程序可以推断变量的枚举类型时,Swift允许省略枚举值前面的枚举名前缀。
day=.Sunday
枚举值和switch语句
var chooseDay=Weekday.Sundayswitch(chooseDay) {case .Monday,Tuesday,Wednesday,Thursdayv,Friday:print("工作日") case .Staturdayv,Sundayprint("周末")}
原始值
可以通过原始值为每一个枚举实例指定一个简单类型(如Int、Double、Float)
语法格式如下:
enum 枚举名:原始值类型{case 枚举值=原始值}
注意Swift并不要求对每个枚举值指定原始值,Swift可以根据已经指定的原始值的枚举来推断它前后所有枚举的枚举值。
enum Weekday:Int{case Monday,Tuesday=1,Wednesday,Thursday,Friday,Saturday,Sunday}
由Tuesday等于1可以推断出Monday等于0,Wedding等于2,以后的等于3、4…
但是字符串不能进行推断,需要给每个枚举都指定原始值。
enum Season:Character{case Spring="S"case Summer="U"case Fall="F"case Winter="W"}
枚举可使用如下构造器和属性
init?(rawValue:)可能失败的构造器。因此该* 构造器返回的是包含枚举值的可选类型
rawValue:属性(使用枚举实例调用)。获取指定枚举值的原始值。
var day=Weekday.Staturdayprint(".Saturday的原始值为:\(day.rawValue)")//输出8var mySeason=Season(rawValue:"S")if mySeason !=nil{ print(mySeason!)print("春天")}
注意:可能是一个失败的构造器,所以需要加以判断,否则会造成崩溃。
关联值
定义一个枚举时,可以为枚举添加丰富的枚举属性,这和C、Object-C相比,极大的丰富了枚举的作用。enum Season{case Monday(Work:String)case Tuesday(Work:String)case Wednesday(Work:String)case Thursday(Work:String)case Friday(Work:String)case Staturday(Work:String)case Sunday(Work:String)}var mySeason1=Season.Monday(Work:"工作呀")var mySeason2=Season.Sunday(Work:"相亲呀")
访问枚举值的关联值,需要声明额外的变量或常量,并将枚举值的关联值绑定到这些变量或常量。
Season.Monday(Work:String)=mySeason1print("\(Work)")
1 0
- Object-C--->Swift之(八)枚举
- Object-C--->Swift之(八)类和结构体
- Object-C之块枚举的使用
- Object-C--->Swift之(二)可选类型
- Object-C--->Swift之(六)函数类型
- Object-C--->Swift之(七)函数重载
- Object-C--->Swift之(十)存储属性
- Object-C--->Swift之(十一)属性观察者
- Object-C 和 Swift 混编 之二 Swift 中调用 Object-C
- (object-c)枚举类
- swift object-c 使用
- object-c与swift
- swift object-c互用
- Swift 之 枚举
- swift之枚举
- Swift学习之枚举
- swift 笔记 (八) —— 枚举
- Swift中文教程(八) 枚举类型
- 10个足以让你成为更优秀的程序员的C语言资源
- webpack配置
- run loop
- 4.0十九章 检测----性能计数器
- 配置环境 appium+Python+selenium
- Object-C--->Swift之(八)枚举
- Python标准库与第三方库详解
- switch的用法
- 修改WebBrowser控件的内核解决方案
- (android高仿系列)今日头条 --新闻阅读器 (一)
- ARM嵌入式Linux设备树简介及应用示例
- MySQL性能优化的最佳经验
- 记录部件新增后保存成功,但是数据库没有数据
- webview事项