ios-Swift的只读属性和懒加载对比

来源:互联网 发布:sql between 边界 编辑:程序博客网 时间:2024/05/20 06:38

在Swift中的只读属性可以这么写

var title1:String? {        get        {          return "MM" + (opti ?? "")        }    }
简写是这样的

  var title2:String?    {        return "MR" + (opti ?? "")    }
还有种叫法叫做计算型属性,每一次调用的时候都会去执行{ }中的代码,结果是取决于其他属性,每一次都要去计算,比较耗性能,不需要去开辟额外的空间,就是上面那种情况

懒加载,第一次调用的时候回去执行闭包,然后在下面这个变量中保存执行结果,再次调用的时候就不会再去执行闭包了,会直接的返回结果,这个只需要计算一次,因为是懒加载,需要开辟单独的空间去保存计算的结果。计算量大的时候可以使用这个。

闭包其实就是一个提前准备好的代码,在需要的时候去执行。

 lazy var title3: String? = {                return "MMM" + (self.name ?? "")            }()