这是两种不同类型的枚举吗?

时间:2018-05-19 18:22:21

标签: swift types enums

我遵循了一个教程,我注意到作者宣称这个枚举看起来像是多种类型。根据我从Swift标准库中在线阅读的内容,我知道枚举可以是某种类型,枚举不支持继承。这是String和CodingKey类型的枚举吗?或者名称是String类型,项目是CodingKey类型吗?

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

1 个答案:

答案 0 :(得分:3)

这不是继承,它有两件事:

  1. A https://github.com/plataformatec/devise/blob/master/lib/devise/failure_app.rb#L120。这是一种特殊形式,用于支持"支持价值"用于表示enum的案例。在这种情况下,它是String。当枚举选择具有String原始值,但是该情况没有指定原始值时,该案例的名称隐含地假定为案例的原始值。
  2. 协议一致性条款,声明此枚举符合CodingKey