Swift里的lazy

惰性初始化,就是在变量第一次使用的时候才进行初始化。

Swift中,有两种方式来惰性初始化。

第一种,简单表达式

lazy varfirst = NSArray(objects:"1","2")

第二种,闭包

lazy varsecond:String= {return"second"}()

使用场景:

1、属性本身依赖于外部因素才能初始化

2、属性需要复杂计算,消耗大量CPU(耗时)

3、属性不确定是否会使用到

如果 = nil, 再用.用到的时候不会再创建,所以小心使用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,800评论 0 9
  • Swift2.0 1.defer译为延缓、推迟之意类似栈 注意作用域,其次是调用顺序——即一个作用域结束(注意),...
    zeqinjie阅读 8,638评论 0 50
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,191评论 4 61
  • 问题 1)柯里化,通过柯里化,改造target-action,因为selector只能使用字符串,在编译时无法发现...
    lanjing阅读 8,897评论 3 19
  • 15日 18:18高铁 衡阳-长沙 22:10飞机 长沙-丽江 行程1 :16日 ¥开启云南之旅¥ 联...
    球球哈哈哈阅读 1,495评论 0 0