我有一个枚举:
enum GestureDirection:UInt {
case Up = 1 << 0
case Down = 1 << 1
case Left = 1 << 2
case Right = 1 << 3
}
但每次我都会出错:
枚举大小写的原始值必须是文字
我不明白.
Swift 1.2,Xcode 6.3.2
我有一个枚举:
enum GestureDirection:UInt {
case Up = 1 << 0
case Down = 1 << 1
case Left = 1 << 2
case Right = 1 << 3
}
但每次我都会出错:
枚举大小写的原始值必须是文字
我不明白.
Swift 1.2,Xcode 6.3.2
那是因为1 << 0
不是字面意思.您可以使用二进制文本,它是一个文本,并且在那里是允许的:
enum GestureDirection:UInt {
case Up = 0b000
case Down = 0b001
case Left = 0b010
case Right = 0b100
}
枚举仅支持raw-value-literal
s,每language grammar个枚举中有numeric-literal
(数字)string-literal
(字符串)或boolean-literal
(布尔).
而是作为一种解决方法,仍然能很好地表明你在做什么.