常规(简化)写法
懒加载的属性用 var 声明
lazy var name: String = {
return "BY"
}()完整写法
lazy var name: String = { () -> String i
return "BY"
}()本质是一个创建一个闭包 {} 并且在调用该属性时执行闭包 ()。
如OC的懒加载不同的是 swift 懒加载闭包只调用一次,再次调用该属性时因为属性已经创建,不再执行闭包。
常规写法
var name: string {
return "BY"
}完整写法
var name: string {
get {
return "BY"
}
}计算型属性本质是重写了 get 方法,其类似一个无参有返回值函数,每次调用该属性都会执行 return
通常这样使用
struct Cuboid {
var width = 0.0, height = 0.0, depth = 0.0
var volume: Double {
return width * height * depth
}
}
let fourByFiveByTwo = Cuboid(width: 4.0, height: 5.0, depth: 2.0)
print("the volume of fourByFiveByTwo is \(fourByFiveByTwo.volume)")
// Prints "the volume of fourByFiveByTwo is 40.0"相同点
var 声明不同点
get 方法
{}的次数不同
懒加载的闭包只在属性第一次调用时执行
计算型属性每次调用都要进入 {} 中,return 新的值