我现在和Decodable
,Encodable
和朋友一起玩,试图理解"魔法"背后。
我觉得不寻常的一件事是:
class Person: Decodable {
var name: String
var age: Int
}
编译器很乐意接受它。如果我将其定义为struct
我就明白了;编译器为struct
s。
但是为什么会这样?
答案 0 :(得分:1)
编译器还为符合Encodable
和Decodable
的类型创建默认实现,只要它们的所有属性都是符合的类型即可。
来自原始提案:https://github.com/apple/swift-evolution/blob/master/proposals/0166-swift-archival-serialization.md