美文网首页kotlin
50. by lazy 惰性加载

50. by lazy 惰性加载

作者: 写代码的向日葵 | 来源:发表于2019-10-04 23:42 被阅读0次

1.使用的时候再加载

2.有如下代码

fun main(args: Array<String>) {
    println(age)
    println(age)
}

val age: Int by lazy {
    println("age被初始化了")
    8
}

class Person {
    /**
     * 用的时候再加载
     */
    val name: String by lazy {
        "张三"
    }
}

输出结果如下:

image.png
  • 可以看到age被初始化了只执行了一次

2.by lazy的条件

  • 字段必须是val不可变
  • by lazy可以放到成员变量中,也可以单独存在
  • by lazy的返回值是最后一行
  • by lazy 属于线程安全的,多个线程访问,也不会初始化多次

相关文章

网友评论

    本文标题:50. by lazy 惰性加载

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