在Kotlin中,可以使用lateinit關(guān)鍵字來延遲初始化變量。lateinit關(guān)鍵字可以用于var屬性,但不能用于val屬性或基本數(shù)據(jù)類型。延遲初始化變量必須是非空的,并且不能在定義時(shí)賦初值。
例如:
lateinit var name: String
fun initializeName() {
name = "John"
}
另外,也可以使用lazy函數(shù)來延遲初始化變量。lazy函數(shù)接收一個(gè)lambda表達(dá)式作為參數(shù),當(dāng)首次訪問該變量時(shí),才會(huì)執(zhí)行l(wèi)ambda表達(dá)式并保存結(jié)果。
例如:
val name: String by lazy {
"John"
}