Swift中的枚举
来源:互联网 发布:网络管理需求分析 编辑:程序博客网 时间:2024/06/01 09:28
在Objective-C中,枚举是用来管理一组相关常量的集合,使用枚举可以提高程序的可读性,使代码更容易维护。但是,在Swift中,枚举的作用已经不仅仅是用来定义一组枚举了。在Swift中,枚举还具有一定的面向对象的特点。在Swift中,枚举的声明还是使用关键字enum,其具体格式为:
enum 枚举名 { 枚举的定义}
在学习Objective-C的时候,我们知道,枚举的成员值是整数类型。但是在Swift中,其枚举成员值默认情况下不是整数类型,并且在成员值前面还要加上关键字case:
// 声明一个星期枚举enum Week { case Monday case Tuesday case Wednesday case Thursday case Friday case Saturday case Sunday}// 枚举的使用var day = Week.Monday // 通过“枚举名.成员值”的形式来访问枚举day = .Tuesday // 省略枚举名func whatDayOfTheWeek(day: Week) { switch day { case .Monday: print("忙day") case .Tuesday: print("求死day") case .Wednesday: print("未死day") case .Thursday: print("受死day") case .Friday: print("福来day") case .Saturday: print("洒脱day") case .Sunday: print("伤day") }}whatDayOfTheWeek(day: day) // 参数传递的是枚举成员值whatDayOfTheWeek(day: Week.Wednesday) // 参数传递的是枚举变量
在使用枚举成员赋值时,我们既可以采用完整的语法进行赋值,也可以通过省略枚举名进行赋值。并且,枚举变量还可以和switch配合使用。不过需要注意,在switch中使用枚举时,case必须包含枚举中所有的成员,而且语句中可以有default,也可以没有default。
在定义枚举时,还可以根据实际情况来提供原始值,并且原始值不限于整型,还可以是字符(串)、浮点数等等。指定原始值的语法为:
enum 枚举名: 数据类型 { case 成员名 = 默认值 ……}
在指定枚举原始值的默认类型之后,需要给每个成员赋值,并且每隔case的值都不能重复。以上面的代码为例:
// 声明一个星期枚举enum Week: Int { case Monday = 0 case Tuesday = 1 case Wednesday = 2 case Thursday = 3 case Friday = 4 case Saturday = 5 case Sunday = 6}// 或者也可以采用简写的语法enum Week: Int { case Monday = 0, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday}// 将枚举值转换为原始值let monday = Week.Monday.rawValue // 0let friday = Week.Friday.rawValue // 4let saturday = Week.Saturday.rawValue // 5
采用简写时,如果指定其默认值类型为整型,只需要给第一个成员赋值,后面的成员值会自动加一。要将枚举成员的值转换为原始值,可以用属性rawValue。
阅读全文
0 0
- Swift中的枚举
- swift中的枚举
- Swift中的枚举enum
- Swift 中的枚举 (enum)
- Swift中的枚举
- Swift中的枚举类型(一)
- 【iOS】Swift中的函数、断言、枚举等
- Swift- 枚举中的rawValue和hashValue
- 穿梭在C/OC/Swift中的枚举
- swift中的枚举个例和switch个例
- Swift语言中的枚举和结构体
- Swift- 枚举中的rawValue和hashValue
- IOS中的Swift基础04(字典,枚举)
- [Swift]UIAlertController 以及 Swift 中的闭包和枚举
- Swift 枚举
- Swift枚举
- [Swift]枚举
- Swift-枚举
- 项目基本架构的搭建
- Swift基础知识补充(一)
- Swift基础知识补充(二)
- Swift基础知识补充(三)
- Swift中的闭包
- Swift中的枚举
- Swift中的访问级别
- Swift中的属性
- Swift中的构造方法
- Swift中的构造函数及其继承
- Swift中的类型检查与转换
- Swift中协议的基础知识
- Swift命名规范
- Swift编码风格