基本定义
enum Result {
case success
case failure
}
和oc不同,不会自动从0开始赋值。需要指定原始值类型
支持的原始值类型有:整形,字符串,浮点型,布尔型
原始值
原始值是整形
enum Planet:Int{
case mercury
case venus
case earth
case mars
}
如果不指定第一个枚举值的原始值,默认从0开始自增
如果指定为1,则从1开始自增
enum Planet2:Int {
case mercury = 1
case venus
case earth
case mars
}
原始值是字符型
enum ASCIIControlCharacter: Character {
case tab = "\t"
case lineFeed = "\n"
case carriageReturn = "\r"
}
原始值是字符串类型
当原始值是字符串的时候,成员名称就是隐式原始值。
enum days:String{
case monday
case tue
case wen
case thue
case fri
case sta
case sun
}
通过rawvalue访问原始值
let sun = days.sun
let sun1 = sun.rawValue
let earthr = Planet.earth.rawValue
let earthr2 = Planet2.earth.rawValue
通过原始值初始化枚举实例
let fri = days(rawValue: "fri")
CaseIterable
遵循CaseIterable协议的枚举,有一个allcases的属性,返回所有枚举值的集合
//枚举成员遵循CaseIterable
enum Dir:CaseIterable{
case north
case south
case east
case west
}
//可以生成一个allcase的属性,拿到枚举中所有成员的集合,这个集合是数组吗?
for dir in Dir.allCases{
print(dir)
}