Object-C--->Swift之(九)延迟存储属性

Object-C--->Swift之(九)延迟存储属性

Swift引入了一种新的机制–延迟存储属性机制,在第一次被调用时才会被计算初始值的属性,声明时需要使用lazy修饰符。
注意:定义属性时一定得是变量(var),常量是无法使用延迟存储机制。

什么时候用到延迟存储?

当某个实例持有另一个创建成本较大的实例的引用时,使用延迟存储可以降低内存开销,从而提升性能。

 class Bird
 {
 var name:String
 var age:Int
 init(age:Int)
 {
  self.name="鸟类"
  NSThread.sleepForTimeInterval(2)
  self.age=age
 }
 }
 class  Ostrich
 {
   var name:String=""
   var age=Bird(age:3)
 }
 var ostrich=Ostrich()
 ostrich.name="鸵鸟"
 print(ostrich.name)

运行上面的代码,我们明显发现延迟了两秒才打印出来 鸵鸟 很明显我们根本就没有关心Ostrich的age属性,所以这两秒钟的等待是没有必要的,所以我们可以考虑在代码中改下

  lazy var age=Bird(age:3)

这样在没有调用age的话不会进行创建Bird实例,从而性能得到提升。没有延迟两秒的等待。

上一篇:业界首个机密计算容器运行时—Inclavare Containers正式进入CNCF!


下一篇:GNTC 精彩回顾:阿里巴巴IPv6应用平台引领下一代互联网