Swift编程中的初始化与反初始化完全讲解

2020-01-08 22:35:17丽君

println("area is: (rearea.length)")

let recarea = Rectangle(110.0)
println("area is: (recarea.length)")


当我们使用 playground 运行上面的程序,得到以下结果。

 


area is: Optional(180.0)
area is: Optional(370.0)
area is: Optional(110.0)

默认初始化器
默认初始化提供给基类或结构的所有声明属性的新实例默认值。

复制代码
class defaultexample {
    var studname: String?
    var stmark = 98
    var pass = true
}
var result = defaultexample()

 

println("result is: (result.studname)")
println("result is: (result.stmark)")
println("result is: (result.pass)")


当我们使用 playground 运行上面的程序,得到以下结果。

 


result is: nil
result is: 98
result is: true

上述程序中定义了类的名字为 “defaultexample'。三个成员函数默认初始化为“studname?”存储值为 'nil' , “stmark”为98和“pass”的布尔值 “true”。 同样,在类中的成员的值可以处理的类成员类型前初始化为默认值。

按成员初始化器结构类型
当不提供由用户自定义的初始化,在Swift 结构类型将自动接收“成员逐一初始化”。它的主要功能是初始化新的结构实例逐一初始化的默认成员,然后在新的实例属性逐一通过名字传递给成员初始化。

复制代码
struct Rectangle {
    var length = 100.0, breadth = 200.0
}
let area = Rectangle(length: 24.0, breadth: 32.0)

 

println("Area of rectangle is: (area.length)")
println("Area of rectangle is: (area.breadth)")


当我们使用 playground 运行上面的程序,得到以下结果。

 


Area of rectangle is: 24.0
Area of rectangle is: 32.0

结构由默认初始化为“length”为“100.0”和“breadth”为“200.0”,初始化期间为它们的成员函数。但长度和宽度的变量值在处理过程中覆盖为24.0和32.0。