/**
枚举相关值
可以让枚举值对应的原始值不是唯一的,而是一个变量.
每一个枚举可以是在某种模式下的一些特定值
后面加一个 元组
*/
enum LineSegmentDescriptor {
case StartAndEndPattern(start:Double,end:Double)
case StartAndLengthPattern(start:Double,length:Double)
}
var lsd = LineSegmentDescriptor.StartAndLengthPattern(start: 0.0,length: 100.0)
lsd = LineSegmentDescriptor.StartAndEndPattern(start: 0.0,end: 50.0)
print("--------->")
print(lsd)
// 利用switch提取枚举关联值
switch lsd {
case let .StartAndEndPattern(s,e):
print("start = \(s) end = \(e)")
case .StartAndLengthPattern(let s,let l):
print("start = \(s) lenght = \(l)")
}
// 输出结果: start = 0.0 end = 50.0