Swift 初始化
Swift的类、结构体和枚举都用于在Swift4中声明后准备类的实例。初始值用于初始化存储属性,这些值被初始化用于进一步处理。’init()’方法用于创建初始化函数。Swift 4的初始化器与Objective-C不同,它不返回任何值。它的功能是在处理之前检查新创建实例的初始化。Swift 4还提供了“析构”过程,用于在实例被释放后执行内存管理操作。
存储属性的初始化器
在处理实例之前,存储属性必须为其类和结构体初始化实例。存储属性使用初始化器来分配和初始化值,而无需调用属性观察器。
- 创建初始值。
- 在属性定义中为属性分配默认值。
- 为特定数据类型初始化实例时,使用’init()’。在init()函数中不传递任何参数。
语法
init() {
//New Instance initialization goes here
}
示例
struct cube {
var length: Double
var breadth: Double
var height: Double
init() {
length = 6
breadth = 12
height = 4
}
}
var volume = cube()
print("volume of cube is \(volume.length*volume.breadth*volume.height)")
输出:
volume of cube is 288.0
这里,
- 结构体“ cube ”以“Double”数据类型初始化,具有长度、宽度和高度成员。
- Init()方法用于为新创建的成员初始化值。
- 通过调用cube函数来计算和返回cube的体积。
设置默认的属性值
在Swift4编程语言中,在声明类或结构体成员时,init()函数用于默认地初始化属性值。当属性在整个程序中都取相同的值时,我们可以在声明部分单独声明它,而不是在init()中初始化它。通过默认设置属性值,使用户在为类或结构体定义继承时起作用。
示例
struct cube {
var length = 6
var breadth = 12
var height = 4
}
var volume = cube()
print("volume of the cube is \(volume.length*volume.breadth*volume.height)")
输出:
volume of cube is 288
参数初始化
在Swift4语言中,用户可以使用init()作为初始化器的一部分来初始化参数。
示例
struct Rectangle {
var length: Double
var breadth: Double
var area: Double
init(fromLength length: Double, fromBreadth breadth: Double) {
self.length = length
self.breadth = breadth
area = length * breadth
}
init(fromL l: Double, fromB b: Double) {
self.length = l
self.breadth = b
area = l * b
}
}
let a1 = Rectangle(fromLength: 6, fromBreadth: 12)
print("area is: \(a1.area)")
let a2 = Rectangle(fromL: 36, fromB: 12)
print("area is: \(a2.area)")
输出:
area is: 72.0
area is: 432.0