Swift枚举原始值:不使用CGFloat = -1.0

Tch*_*yzt 2 enums cgfloat swift

这不起作用的是什么?

enum Aspect : CGFloat {
    case Clockwise = 1.0
    case Anticlockwise = -1.0
}
Run Code Online (Sandbox Code Playgroud)

在Anticlockwise线上,我被告知'enum case的原始值必须是字面的'

Ray*_*ond 7

奇怪的是,带有减号的浮点数不是文字,而是表达式.所以错误信息是正确的.

从Swift编程语言:

与整数文字不同,负浮点数通过将一元减号运算符( - )应用于浮点文字来表示,如-42.0.结果是表达式,而不是浮点字面值.


Ant*_*nio 5

这听起来像个bug.但是,如果省略小数部分,它似乎有效:

enum Aspect : CGFloat {
    case Clockwise = 1
    case Anticlockwise = -1
}
Run Code Online (Sandbox Code Playgroud)