在声明或init中初始化Swift类变量?

时间:2014-11-26 09:58:35

标签: class swift init

在Swift中,您可以在声明变量时初始化类中的变量:

var name: String = "John"

或者您可以使用init初始化:

var name: String

init(name: String) {
   self.name = name
}

您使用哪个版本以及何时使用?

1 个答案:

答案 0 :(得分:4)

除非您提供初始值作为初始化参数,但由于显而易见的原因,您可以在初始化程序中使用这两种方法中的任何一种。

我的规则是:

  • 如果有多个初始值设定项,并且在所有情况下都使用相同的值初始化属性,我更喜欢内联初始化
  • 如果属性是(或应该是)不可变的,我更喜欢内联初始化
  • 如果属性可以在实例生命周期中更改,我更喜欢构造函数初始化

但除了第一个,其他2个只是基于个人喜好。