美文网首页
lazy 修饰符和 lazy 方法

lazy 修饰符和 lazy 方法

作者: fordring2008 | 来源:发表于2017-02-04 09:31 被阅读30次

延时加载或者说延时初始化时很常用的优化方法。

在特定环境下才会使用到的存储属性,可以使用 lazy

class ClassA {

// 延时初始化

lazy var str: String = {

let str = "Hello"

print("只在首次访问时输出")

return str

}()

// 如果不需要做什么额外的工作,可以简化成

lazy var str1: String = "hello1"

}

/*

lazy 可以结合  map/ filter 这类闭包并进行运行的方法一起,让这个行为变成延时进行的,对性能也是有不小的提升

*/

// 直接使用 map

//let data = 1...3

//let result = data.map { (i) -> Int in

//    print("正在处理:\(i)")

//    return i * 2

//}

//print("准备访问结果")

//for i in result {

//    print("操作后结果为:\(i)")

//}

//print("操作完毕")

/*

输出为:

正在处理:1

正在处理:2

正在处理:3

准备访问结果

操作后结果为:2

操作后结果为:4

操作后结果为:6

操作完毕

*/

let data = 1...3

let result = data.lazy.map { (i) -> Int in

print("正在处理:\(i)")

return i * 2

}

print("准备访问结果")

for i in result {

print("操作后结果为:\(i)")

}

print("操作完毕")

/*

输出为:

准备访问结果

正在处理:1

操作后结果为:2

正在处理:2

操作后结果为:4

正在处理:3

操作后结果为:6

操作完毕

*/

// 总结: 对于那些不需要完全运行,肯恩提前退出的情况,使用 lazy 来进行性能优化效果会非常有效

相关文章

  • lazy修饰符和lazy方法

    我们在第一次访问某个属性时,判断这个属性背后的存储是否已经存在,如果存在则直接返回,如果不存在则说明是首次访问,那...

  • lazy修饰符和lazy方法

    swift属性的延迟加载你一定不陌生 lazy var str:String = "Hello" 而我们今天关注的...

  • lazy 修饰符和 lazy 方法

    延时加载或者说延时初始化时很常用的优化方法。 在特定环境下才会使用到的存储属性,可以使用 lazy class C...

  • Swift中的属性

    1、属性访问控制2、属性观察3、KVO4、lazy修饰符和lazy方法 1、属性访问控制 对于方法来说比较直接,我...

  • Swift - LAZY 修饰符和 LAZY 方法

    延时加载或者说延时初始化是很常用的优化方法,在构建和生成新的对象的时候,内存分配会在运行时耗费不少时间,如果有一些...

  • [Swift开发者必备Tips] 单例 | log输出|la

    单例 Log 输出 lazy 修饰符和 lazy 方法 单例 单例是一个在 Cocoa 中很常用的模式了。对于一些...

  • [Vue]基础指令

    v-model .lazy.lazy修饰符,焦点离开文本框发生变化 .trim去空格 .number Vue.di...

  • vue 修饰符

    v-model 修饰符 .lazy.number.trim .sync 修饰符 .native修饰符 事件修饰符 ...

  • Kotlin 使用Perference

    实例: 模板类 委托属性/委托代理 lazy修饰符 with函数 调用

  • swift中lazy 修饰符和 lazy 方法以及get、set

    1,懒加载的写法 2,lazy修饰方法 另外一个不太引起注意的是,在 Swift 的标准库中,我们还有一组 laz...

网友评论

      本文标题:lazy 修饰符和 lazy 方法

      本文链接:https://www.haomeiwen.com/subject/vnsjittx.html