发布于 2015-06-14 01:50:18 | 144 次阅读 | 评论: 0 | 来源: 网络整理
类和结构体在实例创建时,必须为所有存储型属性设置合适的初始值。存储型属性的值不能处于一个未知的状态。
你可以在构造器中为存储型属性赋初值,也可以在定义属性时为其设置默认值。以下章节将详细介绍这两种方法。
注意:
当你为存储型属性设置默认值或者在构造器中为其赋值时,它们的值是被直接设置的,不会触发任何属性观测器(property observers
)。
构造器在创建某特定类型的新实例时调用。它的最简形式类似于一个不带任何参数的实例方法,以关键字init
命名。
下面例子中定义了一个用来保存华氏温度的结构体Fahrenheit
,它拥有一个Double
类型的存储型属性temperature
:
struct Fahrenheit {
var temperature: Double
init() {
temperature = 32.0
}
}
var f = Fahrenheit()
println("The default temperature is (f.temperature)° Fahrenheit")
// 输出 "The default temperature is 32.0° Fahrenheit”
这个结构体定义了一个不带参数的构造器init
,并在里面将存储型属性temperature
的值初始化为32.0
(华摄氏度下水的冰点)。
如前所述,你可以在构造器中为存储型属性设置初始值;同样,你也可以在属性声明时为其设置默认值。
注意:
如 果一个属性总是使用同一个初始值,可以为其设置一个默认值。无论定义默认值还是在构造器中赋值,最终它们实现的效果是一样的,只不过默认值跟属性构造过程 结合的更紧密。使用默认值能让你的构造器更简洁、更清晰,且能通过默认值自动推导出属性的类型;同时,它也能让你充分利用默认构造器、构造器继承(后续章 节将讲到)等特性。
你可以使用更简单的方式在定义结构体Fahrenheit
时为属性temperature
设置默认值:
struct Fahrenheit {
var temperature = 32.0
}