【问题标题】:Is this enum of two different types?这是两种不同类型的枚举吗?
【发布时间】:2018-10-29 21:27:48
【问题描述】:

我正在关注一个教程,我注意到作者声明了这个枚举,看起来像是多种类型。根据我从 Swift 标准库在线阅读的内容,我了解枚举可以是某种类型,并且枚举不支持继承。这是 String 和 CodingKey 类型的枚举吗?还是名称大小写为 String 类型,项目大小写为 CodingKey 类型?

private enum CodingKeys: String, CodingKey {
        case name
        case items
    }

【问题讨论】:

标签: swift types enums


【解决方案1】:

这不是继承,而是两件事:

  1. raw value clause。这是一种特殊形式,用于指定用于表示enum 的案例的“支持值”。在这种情况下,它是String。当枚举选择了 String 原始值,但 case 没有指定原始值时,case 的名称被隐式假定为 case 的原始值。
  2. 协议一致性子句,声明此枚举符合CodingKey

【讨论】:

    猜你喜欢
    • 2021-08-13
    • 1970-01-01
    • 1970-01-01
    • 2018-03-06
    • 1970-01-01
    • 2021-01-23
    • 2010-12-21
    • 1970-01-01
    • 2011-09-21
    相关资源
    最近更新 更多