通过索引访问字符串枚举

系统:

我在C中有一个枚举,索引需要用String表示。

整数索引如何使用String类型的Swift枚举?

我想将枚举复制到Swift,将类型设置为string并定义所有原始值以显示文本,然后使用C枚举值提取Swift String枚举的原始值文本。

否则,我将只创建一个字符串数组。.但是枚举会更有用。

OOPer:

在Swift中,枚举类型不保存其案例索引信息(至少不为程序员提供)。

所以:

整数索引如何使用String类型的Swift枚举?

答案是“你不能”。


您可以通过多种方式绑定Int(或枚举大小写)和String值,而不仅仅是创建字符串数组。

例如,如果绑定的字符串可以与大小写标签相同,则可以编写如下内容:

enum MyEnum: Int {
    case foo
    case bar
    case baz

    var string: String {
        return String(self)
    }
}

if let value = MyEnum(rawValue: 0) {
    print(value.string) //->foo
}

如果您的Strings需要稍微复杂一些才能显示文本,则可以使用Swift Dictionary绑定枚举大小写和Strings。

enum AnotherEnum: Int {
    case foo
    case bar
    case baz

    static let mapper: [AnotherEnum: String] = [
        .foo: "FooString",
        .bar: "BarString",
        .baz: "BazString"
    ]
    var string: String {
        return AnotherEnum.mapper[self]!
    }
}

if let value = AnotherEnum(rawValue: 1) {
    print(value.string) //->BarString
}

比简单的字符串数组更具可读性

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章