关联值:
枚举中可以定义几种不同的类型,这些类型在使用时也可以绑定不同的数值。例如:
我们可以定义一个商品的编号:
enum Code{
case fourSection(Int,Int,Int,Int)
case stringSection(String)
}
在switch语句中可以进行相应的数据绑定:
var book = Code.fourSection(1, 1234, 5678, 0)
book = Code.stringSection("123456789")
switch book {
case .fourSection(let a,let b,let c,let d):
print("一维码:\(a)\(b)\(c)\(d)")
case .stringSection(let str):
print("二维码:\(str)")
}
原始值:
原始值是固定的,可以说是原来的枚举。而关联值不是固定的,应该说是加强版的枚举值。例如:
我们定义星球的编号:
enum Star:Int {
case earth = 1
case mars = 2
}
let myStar = Star.earth
switch myStar {
case .earth:
print("地球")
//打印值为1
print(Star.earth.rawValue)
case .mars:
print("火星")
print(Star.earth.rawValue)
}