Swift的枚举,与object-c/c 的枚举不太一样,准确的说是多了很多特性;
首先枚举分三种: 1. 普通枚举 2. 包含原始值的枚举 3. 包含关联值的枚举
/ 普通枚举
enum Sex {
case man, woman
}
// 含有原始值的枚举
enum Direction: Int {
/// 默认从 0 开始
case east, south, west, north
/**
也可以这样写
case east = 1
case south
case west
case north
*/
}
// 含有关联值的枚举
enum Padding {
/// 默认从 0 开始
case top, left, bottom, right(Int, Int)
}
func enum_run(){
var sex = Sex.man
sex = .woman
switch sex { //使用时需要包含所有情况 默认添加break;若想继续执行添加 fallthrough关键字
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): // 其实‘可选类型’解包的过程就是这么实现的
print(padding, a, b) // 获取关联值 输出 right(30, 50) 30 50
case .top:
print(padding)
case .bottom:
print(padding)
case .left:
print(padding)
}
}
enum_run()
网友评论