菜鸡学Swift3.0 12.枚举

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 枚举项 ... }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容