在C语言中,您可以使您的枚举具有:
typedef enum _Bar {
A = 0,
B = 0,
C = 1
} Bar;
在Swift中,我想做等效的事情。但是,编译器抱怨它不是唯一的。我该如何告诉我两个案例具有相同的价值?
enum Bar : Int {
case A = 0
case B = 0 // Does not work
case C = 1
}
我试过了
case A | B = 0
和
case A, B = 0
但这似乎不像我想要的那样工作。
Swift不支持重复值(或语义上的“别名”)。如果您不介意,则可以使用类似以下的方式模仿它:
enum Foo: Int {
case Bar = 0
static var Baz:Foo {
get {
return Bar
}
}
static var Jar:Foo {
get {
return Foo(rawValue: 0)!
}
}
}
在最新版本的Swift中,可以这样缩短:
enum Foo: Int {
case bar = 0
static var baz:Foo { .bar }
static var jar:Foo { Foo(rawValue: 0)! }
}
请注意,Swift已将其枚举变量的命名约定从PascalCase更改为camelCase。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句