纯属记录,没有干货
说明一下,枚举也是一个数据类型
最基本的枚举
enum Direction {
case East
case West
case North
case South
}
一般枚举都是跟switch结合是用的
let di:Direction = Direction.East
switch di {
case .East:
print("东方")
default:
print("不是东方")
}
枚举关联值
enum Direction:Int {//如果这里不是Int类型的,例如是String类型的,则需要对每个case赋值
case East = 1//如果没有给定初始值,则从0开始,后续会递增加1
case West
case North
case South
}
这时使用就可以这样
var direc:Direction? = Direction.East//等价于var direc:Direction? = Direction(rawValue: 1)
竟然发现有一个rawValue的东西,枚举有关联值,会有这个一个玩意,结合
switch判断,可以用rawValue判断。
也可以自己指定case的关联类型,来个例子
enum myEnum{
case enumOne(a:Int, b:Int, c:Int)
case enumTwo(String)
}
先定义一个枚举类型的变量
var textEnum:myEnum = myEnum.enumOne(a: 12, b: 4, c: 5)
在switch中可以这样写
switch textEnum {
case .enumOne(let a, let b, let c)://这里如果这写 .enumOne,也是可以的,但是后边的逻辑就用不了里边的具体数值了
print(a + b + c)
case .enumTwo(let str):
print(str)
}