在Swift中的只读属性可以这么写
var title1:String? {
get
{
return "MM" + (opti ?? "")
}
}
简写是这样的
var title2:String?
{
return "MR" + (opti ?? "")
}
还有种叫法叫做计算型属性,每一次调用的时候都会去执行{ }中的代码,结果是取决于其他属性,每一次都要去计算,比较耗性能,不需要去开辟额外的空间,就是上面那种情况
懒加载,第一次调用的时候回去执行闭包,然后在下面这个变量中保存执行结果,再次调用的时候就不会再去执行闭包了,会直接的返回结果,这个只需要计算一次,因为是懒加载,需要开辟单独的空间去保存计算的结果。计算量大的时候可以使用这个。
闭包其实就是一个提前准备好的代码,在需要的时候去执行。
lazy var title3: String? = {
return "MMM" + (self.name ?? "")
}()