美文网首页
菜鸡学Swift3.0 12.枚举

菜鸡学Swift3.0 12.枚举

作者: 菜鸡 | 来源:发表于2016-10-26 11:27 被阅读7次

    1. 枚举定义

    enum 定义枚举类型 { case 枚举项 ... }
    // 定义一个枚举类型叫City
    enum City {
        // case 枚举值 这里应该包含所有该City类型的所有值
        case BeiJin
        case GuangZhou
        case ShangHai
        case ShenZhen
    }
    // 赋值时枚举类型可以省略
    let at = City.ShangHai
    let to:City = .BeiJin
    

    2.原始值 rawValue

    enum 定义枚举类型 { case 枚举项(默认值)...}
    为枚举项提供一个默认值,这个默认值是在编译的时候就确定了。
    enum Language: Int {
        case c = 1
        case php = 2
        case java = 3
        case oc = 4
    }
    
    var userInput = 3
    //枚举类型 ( rawValue: 原始值 )
    Language(rawValue: userInput) //java
    

    3.关联值 Associate Value

    enum 定义枚举类型 { case 枚举项(关联值类型)...}
    需要实例化枚举值后才可以确定。
    enum ATMStatus {
        case Success (Int)
        case Error (String)
    }
    
    var balance = 500
    
    func withdraw( amount:Int ) -> ATMStatus {
        if balance >= amount {
            balance -= amount
            return .Success(balance)
        }
        else {
            return .Error("Not")
        }
    }
    
    let result = withdraw(amount: 100)
    
    switch result {
    case let .Success(balance):
        print (balance)
    case let .Error(errorMessage):
        print (errorMessage)
    }
    

    4. 递归枚举 注意前面加关键字 indirect

    indirect enum 定义枚举类型 { case 枚举项 ... }

    相关文章

      网友评论

          本文标题:菜鸡学Swift3.0 12.枚举

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