【发布时间】:2016-02-13 00:36:49
【问题描述】:
我有一个枚举定义如下
enum Fruit {
case Apple(associatedValue: String)
case Orange(associatedValue: String)
}
我有一个接受 Fruit 类型参数的函数
func printNameOnly(fruit: Fruit) {
}
在此函数中,我想将枚举大小写为字符串,即我想获取字符串“Apple”或“Orange”,而不考虑相关值是什么。 Swift 有可能吗?
我显然可以编写一个函数,它接受水果枚举并使用 case 语句返回一个字符串,但我试图找到一种方法来避免这种情况,因为我想要的字符串是枚举 case 名称本身。
【问题讨论】:
-
您可以添加与您的案例字符串相同的其他关联值。
-
但是每次必须使用枚举时,我都必须指定一个字符串,例如 let v = .Apple("Apple")
-
在 Swift 中,枚举的原始值和关联值不能共存。您可能想解释一下为什么要这样做,这可能会为您的问题提供另一种解决方案。