为什么变量需要在swift中在类中初始化,但是它们不需要在struct中初始化?

时间:2015-12-10 10:02:51

标签: swift

我是学习swift的新手。我最近发现变量或常量需要用初始数或初始化来初始化。但是在结构中它们不需要初始化吗?

2 个答案:

答案 0 :(得分:1)

他们确实需要。

来自Swift语言指南:

  

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

     

您可以在其中设置存储属性的初始值   初始化程序,或通过指定默认属性值作为一部分   财产的定义。

来源:Initialization

答案 1 :(得分:1)

@vadian答案的一个例子:

struct S {
    init() {}
    let a: String
}

这不会编译:

Playground execution failed: Test.xcplaygroundpage:11:13: 
error: return from initializer without initializing all stored properties
init() {}
        ^