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)
}