lateinit 只用于变量 var,而 lazy 只用于常量 val

    lazy 应用于单例模式(if-null-then-init-else-return),而且当且仅当变量被第一次调用的时候,委托方法才会执行。

    1. val lazyValue: String by lazy {
    2. println("computed!")
    3. "Hello"
    4. }