Ios 为什么';Swift是否提供类成员初始值设定项?

Ios 为什么';Swift是否提供类成员初始值设定项?,ios,swift,Ios,Swift,为什么只为结构提供成员初始化器 我需要自己写初始化器吗 我需要自己写初始化器吗 对 在2015年12月/2016年1月,已经详细讨论了如何使其更灵活 最终,由于各种原因,该提案可能会在稍后(Swift 3发布后)重新讨论该主题 在拒绝中,Chris Lattner指出了专门为结构提供memberwise初始化的至少一个原因:因为它可以以最小的开销编写纯“属性包”,如Vec4或CGRect: 2) Memberwise init sugar对“POD”类型和其他“bag of property”类

为什么只为结构提供成员初始化器

我需要自己写初始化器吗

我需要自己写初始化器吗

在2015年12月/2016年1月,已经详细讨论了如何使其更灵活

最终,由于各种原因,该提案可能会在稍后(Swift 3发布后)重新讨论该主题

在拒绝中,Chris Lattner指出了专门为结构提供memberwise初始化的至少一个原因:因为它可以以最小的开销编写纯“属性包”,如
Vec4
CGRect

2) Memberwise init sugar对“POD”类型和其他“bag of property”类型(例如“Vec4”)以及Cocoa拥有的许多C结构类型(CGRect等)都有很大的好处。在这些情况下,客户端通常希望显式初始化所有字段,而memberwise init建议消除了此样板文件。这种情况就是我们现有功能试图提供的服务


大多数类可能更复杂,您可能希望对memberwise初始值设定项有更多的控制,这也会使功能更复杂。

这不是一个基于意见的问题。Swift的创建者决定不提供此类初始值设定项是有原因的。类和结构使得不可能为类提供成员初始值设定项,一个好的答案会揭示这一差异。我怀疑除了“Chris Lattner不喜欢它”之外,你会得到更好的答案。也许这是他提升结构(值类型)而不是类(引用类型)的方式。@EricD。我不同意。“你能吗?”和“为什么”不是同一个问题