1:swift的枚舉類型是一系列的值,不一樣於c語言中枚舉類型是整數類型。每一個枚舉定義了個新的類型swift
2:switch類型匹配spa
2.1枚舉類型和switch單個匹配code
enum PlatType{ blog
case Plane, Ship, Train, Carip
}it
var eTransport:PlatType = PlatType.Ship switch eTransport { case .Plane: println("plane") //case .Ship: // println("ship") //case .Train: // println("train") case .Car: println("car") default: println("default") }
關於switch語句,必須是完備的。如上所示,若是沒有把全部case寫完整,那麼就須要加上default語句。如上代碼,會進入default語句。若是全部case都寫完整了,那麼能夠不須要default語句。另外,不一樣與c語言等,swift語言的switch語句的case會自動break。class
2.2 關聯值枚舉類型方法
enum OtherType{ case Point(Int, Int) case Name(String) } var type:OtherType = .Name("xd") type = .Point(4, 9) switch type{ case .Point(let iX, let iY): println("point X:\(iX) Y: \(iY)") case .Name(let strName): println("name:\(strName)") }
2.3 初始值設定。初始值類型必需要一致。語言
enum InitalSettingType:Character{ case CharacterX = "a" case CharacterY = "r" }
enum InitalIntType:Int{ case Monday = 1, Tuesday, Wednesday, Thursday, Friday, Saturday, weekday }Int類型枚舉初始值會自動+1.相似c語言枚舉
若是要訪問枚舉類型的出事值,使用toRaw方法。di
let initValue = InitalIntType.Tuesday.toRaw() println("\(initValue)")
使用fromRaw()反向查找枚舉類型值。
let value = InitalIntType.fromRaw(2)