我有一个枚举定义如下
enum Fruit {
case Apple(associatedValue: String)
case Orange(associatedValue: String)
}
我有一个接受 Fruit 类型参数的函数
func printNameOnly(fruit: Fruit) {
}
在此函数中,我想将枚举大小写作为字符串获取,即我想获取字符串“Apple”或“Orange”,而不考虑关联值是什么。这对 Swift 来说可能吗?
我显然可以编写一个函数,该函数采用 fruit 枚举并使用 case 语句返回一个字符串,但我试图找到一种方法来避免这种情况,因为我想要的字符串是枚举 case 名称本身。
最佳答案
试试这个(Swift 3.1)。涵盖相关或常规案例。
enum Fruit {
case banana
case apple(String)
case orange(String)
var label:String {
let mirror = Mirror(reflecting: self)
if let label = mirror.children.first?.label {
return label
} else {
return String(describing:self)
}
}
}
print(Fruit.banana.label) // "banana"
print(Fruit.apple("yum").label) // "apple"
关于swift - 使用关联值时获取枚举名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35374588/