1. 程式人生 > >kotlin學習筆記:延遲載入的簡單介紹:lateinit和lazy

kotlin學習筆記:延遲載入的簡單介紹:lateinit和lazy

在使用kotlin開發中,因為各種原因,我們會經常需要使用到延遲載入的功能,目前kotlin的延遲載入主要有兩種:lateinitlazy

lateinit 的使用

lateinitkotlin中的一個關鍵字,使用方法如下

    // 宣告一個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的載入時機為第一次呼叫常量的時候,且只會載入一次(畢竟是個常量,只能賦值一次)