Swift 枚举类型
Swift 枚举是一组只包含自定义的特定数据,有共同特性的数据的集合。
枚举的功能:
- 它声明在类中,可以通过实例化类来访问它的值
- 枚举也可以定义构造函数(initializers)来提供一个初始成员值;可以在原始的实现基础上扩展它们的功能
- 可以遵守协议(protocols)来提供标准的功能
语法
Swift 中使用 enum
关键词来创建枚举并且把它们的整个定义放在一对大括号内
:
enum enumname {
// 枚举的定义内容
//用case关键词表示一行新的成员值将被定义
}
枚举实例
// 定义枚举
enum DaysofaWeek {
case Sunday
case Monday
case TUESDAY
case WEDNESDAY
case THURSDAY
case FRIDAY
case Saturday
}
//定义一个枚举类型的变量并赋初值
var weekDay = DaysofaWeek.THURSDAY
weekDay = .THURSDAY
switch weekDay
{
case .Sunday:
print("星期天")
case .Monday:
print("星期一")
case .TUESDAY:
print("星期二")
case .WEDNESDAY:
print("星期三")
case .THURSDAY:
print("星期四")
case .FRIDAY:
print("星期五")
case .Saturday:
print("星期六")
}
注意: 和 C 和 Objective-C 不同,Swift 的枚举成员在被创建时不会被赋予一个默认的整型值。在上面的DaysofaWeek例子中,Sunday,Monday,……和Saturday不会隐式地赋值为0,1,……和6。相反,这些枚举成员本身就有完备的值,这些值是已经明确定义好的DaysofaWeek类型
var weekDay:DaysofaWeek = .Saturday
weekDay = .Saturday
weekDay的类型可以在它被
DaysofaWeek的一个可能值初始化时推断出来
。一旦weekDay被声明为一个DaysofaWeek,你可以使用一个缩写语法(.)
将其设置为另一个DaysofaWeek的值:
weekDay = .Saturday
当weekDay的类型已知时,再次为其赋值可以省略枚举名。使用显式类型的枚举值可以让代码具有更好的可读性
。
枚举可分为相关值与原始值
相关值与原始值的区别
相关值 | 原始值 |
---|---|
不同数据类型 | 相同数据类型 |
实例: enum {1,0.5,"Swift"} | 实例: enum {1,5,10} |
值的创建基于常量或变量 | 预先填充的值 |
相关值是当你在创建一个基于枚举成员的新常量或变量时才会被设置,并且每次当你这么做得时候,它的值可以是不同的 | 原始值始终是相同的 |
网友评论