符合Decodable的类不需要初始化器

时间:2017-12-16 07:03:42

标签: swift swift4

我现在和DecodableEncodable和朋友一起玩,试图理解"魔法"背后。

我觉得不寻常的一件事是:

class Person: Decodable {
  var name: String
  var age: Int
}

编译器很乐意接受它。如果我将其定义为struct我就明白了;编译器为struct s。

创建隐式初始值设定项

但是为什么会这样?

1 个答案:

答案 0 :(得分:1)

编译器还为符合EncodableDecodable的类型创建默认实现,只要它们的所有属性都是符合的类型即可。

来自原始提案:https://github.com/apple/swift-evolution/blob/master/proposals/0166-swift-archival-serialization.md