Swift的枚舉秩贰,與object-c/c 的枚舉不太一樣毒费,準(zhǔn)確的說是多了很多特性愈魏;
首先枚舉分三種: 1. 普通枚舉 2. 包含原始值的枚舉 3. 包含關(guān)聯(lián)值的枚舉
/ 普通枚舉
enum Sex {
case man, woman
}
// 含有原始值的枚舉
enum Direction: Int {
/// 默認(rèn)從 0 開始
case east, south, west, north
/**
也可以這樣寫
case east = 1
case south
case west
case north
*/
}
// 含有關(guān)聯(lián)值的枚舉
enum Padding {
/// 默認(rèn)從 0 開始
case top, left, bottom, right(Int, Int)
}
func enum_run(){
var sex = Sex.man
sex = .woman
switch sex { //使用時需要包含所有情況 默認(rèn)添加break;若想繼續(xù)執(zhí)行添加 fallthrough關(guān)鍵字
case .man:
print(sex)
case .woman:
print(sex)
}
var direction = Direction.east
print(direction.rawValue) // 獲取原始值 輸出 0
direction = .south
print(direction.rawValue)// 獲取原始值 輸出 1
var padding = Padding.right(10, 20)
padding = .right(30, 50)
switch padding {
case let .right(a, b): // 其實‘可選類型’解包的過程就是這么實現(xiàn)的
print(padding, a, b) // 獲取關(guān)聯(lián)值 輸出 right(30, 50) 30 50
case .top:
print(padding)
case .bottom:
print(padding)
case .left:
print(padding)
}
}
enum_run()