在 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
and
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 已将枚举变体的命名约定从帕斯卡案例 https://en.wikipedia.org/wiki/Camel_case to 骆驼香烟盒 https://en.wikipedia.org/wiki/Camel_case.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)