我可以在Swift中为类创建默认的成员初始值设定项吗?

zou*_*oul 5 initialization swift

假设我有一节课Foo:

class Foo {
   let bar: String
   let baz: String
}
Run Code Online (Sandbox Code Playgroud)

我真的必须手工编写成员初始化程序吗?

init(bar: String, baz: String) {
    self.bar = bar
    self.baz = baz
}
Run Code Online (Sandbox Code Playgroud)

这是纯粹的样板.

aya*_*aio 2

如果您可以使用值语义而不是引用语义,则可以使用结构而不是类,它们具有自动成员初始化程序。

在此输入图像描述

如果没有,那么您必须自己为您的班级提供完整的初始化。

  • 有一个 [memberwise 初始化提案](https://github.com/apple/swift-evolution/blob/master/proposals/0018-flexible-memberwise-initialization.md),其中包含进一步讨论的链接,使这一点更加清晰。看起来缺陷已被承认,但在不久的将来不会得到解决。 (2认同)