在Swift中枚举多个具有相同值的案例

德里克·霍328

在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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

swift枚举在单个开关案例中获得具有相同参数的多个案例的关联值

枚举sql中具有多个相同值的行

多个列具有相同的枚举值

枚举:创建多个具有不同值的相同“类型”的枚举?

具有相同变量的枚举案例

具有相同案例名称的枚举以及具有不同类型的关联值

C#具有多个值的相同枚举名称

Swift枚举可以具有多个原始值吗?

Switch 语句包含多个具有相同标签值的案例,除非它没有

复合转换案例:对于具有相同类型关联值的复合枚举案例,我们可以有一个公共值绑定吗?

Java相同的枚举具有不同的值

检查枚举是否具有相同的枚举值

具有多个值类型的Java枚举

Rails:具有多个值的枚举查询

模式匹配具有相同动作的多个案例

具有相同表达式的多个案例陈述

switch语句中具有相同别名的多个案例

在Swift中通过并打印枚举中的所有案例

路线中具有相同键的多个值

具有相同ID的多个div中的Ajax json值

在具有相同ID的数组中添加/求和多个值

在ODBC中匹配具有相同值的多个列

K均值中具有相同值的多个对象

具有多个枚举的枚举类的未知名称值 []

如何获得具有多个案例的动画函数,这些案例控制 Javascript 中的 CSS 值以进行渲染?

相同的Int在Swift神秘谜语中具有不同的值

基于错误的枚举关联值的具有多个catch和条件的Swift错误处理

具有相同大小写的多个枚举

Matlab中具有多个具有相同值的元素的列中的循环