对于要序列化的示例结构 Person
:
struct Person {
let firstName: String
let lastName: String
}
我们可以使它符合Encodable
,Decodable
或Codable
协议。我知道我们在Encodable
和之间的选择Decodable
取决于用例(例如,如果我们正在访问 API 并且不需要解码包含相同类型的响应),但我们也可以使其符合Codable
如果结构是都用于编码和解码。
如果我们需要将结构严格用于编码或解码,但不是两者兼而有之,那么从性能角度来看,仅使用 catch-allCodable
而不是指定Encodable
/Decodable
一致性是一个坏主意吗?
使用Codable
而不是指定Encodable
/的一个明显缺点Decodable
是另一个程序员可能会将结构误解为用于编码和解码,而实际上两者中只有一个发生。但是,如果我对性能非常感兴趣怎么办?