可以创建枚举作为另一个枚举的一部分吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可以创建枚举作为另一个枚举的一部分吗?相关的知识,希望对你有一定的参考价值。

我试图创建枚举,哪些元素将被复制另一个枚举,如下所示:

enum Modes {
    case mode1
    case mode2
    case additionalMode1
    case additionalMode2
}

enum GeneralModes {
    case mode1
    case mode2
}

我不知道该怎么做。需要一些备份。感谢所有的答案和想法。

答案

你不能让enum从另一个enum继承而且没有内置的方法让你的enum实现另一个enum实现的所有情况。

一种可能的解决方法是给Modes一个具有相关值的大小写,其类型为GeneralModes

enum Modes {
    case general(GeneralModes)
    case additionalMode1
    case additionalMode2
}

enum GeneralModes {
    case mode1
    case mode2
}

然后你可以创建一个类型为Modes的变量,其值为mode1

let mode1 = Modes.general(.mode1)

以上是关于可以创建枚举作为另一个枚举的一部分吗?的主要内容,如果未能解决你的问题,请参考以下文章

我可以将枚举定义为另一个枚举案例的子集吗?

在这种情况下使用多态而不是枚举有啥好处吗?

类型为“type”的枚举类作为mixin

是否可以在枚举关联值条件和另一个枚举案例之间编写复合开关案例?

roslyn能生成枚举吗?

可以在 Swift 中将枚举类型名称作为参数传递吗?