为什么我不能用这样的原始值定义枚举?
- enum Edges : (Double,Double) {
- case TopLeft = (0.0,0.0)
- case TopRight = (1.0,0.0)
- case BottomLeft = (0.0,1.0)
- case BottomRight = (1.0,1.0)
- }
Because:
Raw values can be strings,characters,or any of the integer or floating-point number types.
但是有一个替代解决方案:
- enum Edges {
- case TopLeft
- case TopRight
- case BottomLeft
- case BottomRight
- func getTuple() -> (Double,Double) {
- switch self {
- case .TopLeft:
- return (0.0,0.0)
- case .TopRight:
- return (1.0,0.0)
- case .BottomLeft:
- return (0.0,1.0)
- case .BottomRight:
- return (1.0,1.0)
- }
- }
- }
- let a = Edges.BottomLeft
- a.getTuple() // returning (0,1)