美文网首页
Swift 3枚举

Swift 3枚举

作者: revon | 来源:发表于2017-05-05 14:35 被阅读5次

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

    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枚举

          本文链接:https://www.haomeiwen.com/subject/kpzjtxtx.html