swift 枚举定义在类中哪里

 我来答
xiangjuan314
2016-04-11 · TA获得超过3.3万个赞
知道大有可为答主
回答量:2.9万
采纳率:0%
帮助的人:2899万
展开全部
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)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式