Swift 代码组织与作用域管理
1. 关联值对枚举概念的改变
关联值能改变枚举的概念本质。没有关联值时,枚举代表抽象且常量的可能值列表;有了关联值,相同枚举实例不一定相等,因为每个实例的关联值可能不同。这意味着枚举本质上是看待特定类型信息的方式列表。不过,若每个枚举用关联值代表完全不相关概念,可能表明枚举并非处理该任务的最佳工具。
2. 枚举的方法和属性
枚举与结构体类似,也能有方法和属性。以距离枚举为例:
enum Distance {
case Imperial(feet: Int, inches: Double)
case Metric(meters: Double)
func meters() -> Double {
switch self {
case let .Imperial(feet, inches):
return Double(feet)*0.3048+inches*0.3048/12
case let .Metric(meters):
return meters
}
}
}
var distance1 = Distance.Imperial(feet: 6, inches: 2)
distance1.meters() // 1.8796
在 meters 方法中,通过 switch self 判断实
超级会员免费看
订阅专栏 解锁全文
85

被折叠的 条评论
为什么被折叠?



