swift – 使用关联值时获取枚举名称
发布时间:2020-12-14 02:25:22 所属栏目:百科 来源:网络整理
导读:我的枚举定义如下 enum Fruit { case Apple(associatedValue: String) case Orange(associatedValue: String) } 我有一个函数,它接受类型为Fruit的参数 func printNameOnly(fruit: Fruit) {} 在这个函数中,我想把枚举的情况作为一个字符串,即我想得到字符串
我的枚举定义如下
enum Fruit { case Apple(associatedValue: String) case Orange(associatedValue: String) } 我有一个函数,它接受类型为Fruit的参数 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" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – Azure KeyVault Active Directory在异步调用时获取Ac
- 使用MvvmCross,复制预填充SQLite数据库的首选方法是什么
- c# – 我会使用什么代码将SQL表达式转换为正则表达式?
- 从托管C/C++LI使用C#扩展方法
- sqlite3常用命令以及django如何操作sqlite3数据库
- 嵌入式文件系统镜像制作及烧写
- React.js 小书 Lesson10 - 组件的 state 和 setState
- ruby-on-rails – 用于Rails的Paperclip:我可以访问该模型
- ruby-on-rails-3 – Humanize rails选择帮助器
- Flex Skin (Spark)