我想打印嵌套枚举的原始值。例如,如果我有一个包含多个案例的顶级食品枚举(为简单起见,我们只说两个:水果,蔬菜),每个都是字符串枚举(水果:字符串,蔬菜:字符串等),有没有办法打印内部关联值而不在顶级枚举中执行 switch 语句?
我当前的代码如下。如您所见,我添加到 Food 的案例越多,var description 中的冗余代码就越多。我想为所有打印内部枚举的 rawValue 的情况编写一个动作。
没有开关可以吗?
enum Foods {
case fruit(Fruit)
case veggie(Vegetable)
var description: String { // this is what I'd like to replace
switch self {
case .fruit(let type):
return type.rawValue // since every case will look like this
case .veggie(let type):
return type.rawValue
}
}
}
enum Fruit: String {
case apple = "Apple"
case banana = "Banana"
}
enum Vegetable: String {
case carrot = "Carrot"
case spinach = "Spinach"
}