Codable如何验证其扩展的类型?

时间:2019-08-04 21:55:20

标签: swift codable

我遇到了一个很棒的编译时错误,我试图弄清楚它是如何工作的。

在这里,归结为最基本的形式。

struct Object: Codable {
    let a: Int
    let b: Int

    enum CodingKeys: String, CodingKey {
        case a
        case b
    }
}

上面的代码片段可以正常编译。但是,以下代码段失败,因为它不符合类型Decodable

struct Object: Codable {
    let a: Int
    let b: Int

    enum CodingKeys: String, CodingKey {
        case a
    }
}

我的假设是,Swift会以某种方式期望枚举CodingKeys包含Object上定义的每个属性的大小写。

这个假设正确吗?如果是,那么Swift怎么知道呢?

0 个答案:

没有答案