kotlin學習筆記:延遲載入的簡單介紹:lateinit和lazy
阿新 • • 發佈:2019-01-11
在使用kotlin
開發中,因為各種原因,我們會經常需要使用到延遲載入的功能,目前kotlin
的延遲載入主要有兩種:lateinit
和lazy
lateinit 的使用
lateinit
是kotlin
中的一個關鍵字,使用方法如下
// 宣告一個string變數
lateinit var a1: String
private fun test() {
// 初始化
a1 = "test1"
}
在var
之前新增lateinit
,然後選擇你想要的時候,初始化,但是有以下需要注意的地方:
lateinit
只能修飾變數var
,不能修飾常量val
lateinit
不能對可空型別使用lateinit
不能對java
基本型別使用,例如:Double、Int、Long等- 在呼叫
lateinit
修飾的變數時,如果變數還沒有初始化,則會丟擲未初始化異常,報錯
lazy 的使用
lazy
也是kotlin
中常用的一種延遲載入方式,使用方法如下:
val a2:String by lazy{
println("開始初始化")
// 初始化的值
"sss"
}
使用時,在型別後面加by lazy{}
即可,{}
中的最後一行程式碼,需要返回初始化的結果,上述程式碼中,"sss"
即為最後初始化的值。下面是lazy
的一些注意點:
lazy
val
使用,不能修飾變數var
lazy
的載入時機為第一次呼叫常量的時候,且只會載入一次(畢竟是個常量,只能賦值一次)