我的枚举定义如下
enum Fruit { case Apple(associatedValue: String) case Orange(associatedValue: String) }
func printNameOnly(fruit: Fruit) { }
在这个函数中,我想把枚举的情况作为一个字符串,即我想得到字符串“Apple”或“Orange”,而不考虑相关的值. Swift可以实现吗?
我显然可以编写一个函数,它接受水果枚举并使用case语句返回一个字符串,但我试图找到一种方法来避免这种情况,因为我想要的字符串是enum case name本身.
试试这个(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"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。