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