我遇到了一个很棒的编译时错误,我试图弄清楚它是如何工作的。
在这里,归结为最基本的形式。
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怎么知道呢?