/**
枚举相关值
可以让枚举值对应的原始值不是唯一的, 而是一个变量.
每一个枚举可以是在某种模式下的一些特定值
后面加一个 元组
*/
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