为什么它被称为 Memberwise Initialiser

SLN*_*SLN 4 initializer swift

来自办公室 Swift Document 的报价

所有结构都有一个自动生成的memberwise initializer,您可以使用它来初始化新结构实例的成员属性...

问题1:默认初始化器有什么特别之处,为什么不能简单地称为默认初始化器?为什么要添加“成员”?是不是因为它列出了Structure 中定义的所有成员属性。并且在创建实例时,您还必须遵循 Structure 中定义的顺序。

问题 2是否还有其他特殊的初始化器有自己的特殊名称?如果是这样,它们看起来像什么。

[注释第一部分:] 与 Vadian 先生进一步讨论

在此处输入图片说明

[注第二部分:]

在此处输入图片说明

vad*_*ian 5

关于问题1:

Swift 中有一条不可撤销的定律:

类和结构必须在创建该类或结构的实例时将其所有存储的属性设置为适当的初始值。存储的属性不能处于不确定状态。

我们正在谈论结构

当创建一个结构,你可以使用默认初始值(一对括号),如果所有属性都有一个默认值。

如果你只声明没有默认值的属性,编译器会创建一个隐式的成员初始化器——你必须使用它——以确保以非常方便的方式为每个属性分配一个默认值