lazy

所謂的lazy是指,當要使用時才初始化變數的內容。

類似靜態內部類別,使用到了,才會建立類別。

語法

val 變數名 by lazy { ... }

程式碼

1
2
3
4
5
6
7
8
class Test {
    // 使用的時候,才初始化變數
    val info by lazy { load() }
    private fun load(): String {
        println("load setting")
        return "infomation"
    }
}

測試程式

1
2
3
4
5
6
7
fun main() {
    val test: Test = Test()
    // 暫停3秒
    Thread.sleep(3000)
    // 3秒後才使用這個變數,使用的時候才初始化變數內容
    println(test.info)
}

results matching ""

    No results matching ""