swift 枚举类型
1:swift的枚举类型是一系列的值,不同于c语言中枚举类型是整数类型。每个枚举定义了个新的类型
2:switch类型匹配
2.1枚举类型和switch单个匹配
enum PlatType{
case Plane, Ship, Train, Car
}
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。
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方法。
let initValue = InitalIntType.Tuesday.toRaw() println("\(initValue)")
使用fromRaw()反向查找枚举类型值。
let value = InitalIntType.fromRaw(2)