Swift3.x - 懒加载

2017-03-22  本文已影响148人  ibabyblue

懒加载的介绍

懒加载的使用

lazy var 变量: 类型 = {/**创建变量代码*/}()
//懒加载的本质是:在第一次使用的时候执行闭包,将闭包的返回值赋值给属性
//lazy的作用只会赋值一次
lazy var items : [String] = {
     () -> [String] in
     return["jim","jack","rose"]
}()

注意:上述闭包的表达式是在属性定义的时候直接赋值给属性的,闭包后面跟的()是初始化的意思。

懒加载闭包的简化写法
懒加载方法的本质为闭包,但是有时候闭包的格式有些繁琐,需要参数定义,返回值,in关键字引导的函数体等等!存在不需要传入参数的情况,还需要写繁琐的格式,这就很尴尬了!但是苹果怎么会让你尴尬呢?

lazy var items : [String] = {
     () -> [String] in
     ["jim","jack","rose"]
}()

因为定义属性是明确需要返回一个字符串数组,函数体中只包含了单条语句,该语句返回一个字符串数组,因此这里没有歧义,return关键字可以省略。

lazy var items : [String] = {
     ["jim","jack","rose"]
 }()

Zeb
参考地址:https://github.com/numbbbbb/the-swift-programming-language-in-chinese

上一篇 下一篇

猜你喜欢

热点阅读