加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读