菜鸡学Swift3.0 12.枚举

2016-10-26  本文已影响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 枚举项 ... }
上一篇下一篇

猜你喜欢

热点阅读