Swift学习笔记七

关于Swfit中的构造器

构造器其实就是我们在其他语言中常说的构造函数

与Objective-C中**构造函数**不同的是,Swfit的**构造器**无需返回值,它们的主要任务是保证新实例在第一次使用前完成正确的初始化(这个初始化过程包括为实例中属性值设置初始值等)。
当你为存储型属性设置默认值或者在构造器中为其赋值时,它们的值是被直接设置的,不会触发任何属性观测器(property observers)。
**构造器**的最简形式类似于一个不带任何参数的实例方法,以关键字*init*命名,例如:

//在这里我们定义一个结构体
struct test{
var testNum:Double
init(){
testNum=1.1
}
}
//该结构体定义了一个不带参数的构造器,并且将属性testNum的值设置为1.1。
你也可以在定义构造器时提供构造参数,为其提供定制化构造所需值的类型和名字。构造器参数的功能和语法跟函数和方法参数相同,例如:

struct test{
var testNum:Double
init(fromTestNum t:Double){
testNum=t
}
}
跟函数和方法参数相同,构造参数也存在一个在构造器内部使用的参数名字和一个在调用构造器时使用的外部参数名字。然而,构造器并不像函数和方法那样在括号前有一个可辨别的名字。所以在调用构造器时,主要通过构造器中的参数名和类型来确定需要调用的构造器。正因为参数如此重要,如果你在定义构造器时没有提供参数的外部名字,Swift 会为每个构造器的参数自动生成一个跟内部名字相同的外部名,就相当于在每个构造参数之前加了一个哈希符号。
avatar

Code4Cocoa

A ThoughWorker