Swift 3枚举

纯属记录,没有干货
说明一下,枚举也是一个数据类型
最基本的枚举

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)
}

你可能感兴趣的:(Swift 3枚举)