如何在Kotlin中檢查“lateInit”變數是否已初始化?


任何在聲明後才初始化的變數都稱為“延遲初始化變數”。在傳統的程式語言中,任何非空型別的變數都需要在建構函式中初始化。但有時,由於疏忽,開發人員忘記進行這些空值檢查,從而導致程式設計錯誤。為了避免這種情況,Kotlin 引入了一種新的修飾符,稱為“lateInit”。除了這個修飾符之外,Kotlin 還提供了一些方法來檢查此變數是否已初始化。

要建立一個“lateInit”變數,我們只需要新增關鍵字“lateInit”作為該變數的訪問修飾符。以下是使用Kotlin中的“lateInit”需要遵循的幾個條件:

  • 將“lateInit”與可變變數一起使用。這意味著我們需要使用“var”關鍵字與“lateInit”一起使用。

  • “lateInit”僅允許用於不可為空的資料型別。

  • “lateInit”不適用於基本資料型別。

  • 當變數屬性沒有任何**getter**和**setter**方法時,可以使用“lateInit”。

示例

在這個例子中,我們將宣告一個變數為“lateInit”變數,並將使用我們的Kotlin庫函式來檢查該變數是否已初始化。

class Tutorial {

   lateinit var name : String

   fun checkLateInit(){
      println(this::name.isInitialized)
      // it will print false as the value is not initialized

      // initializing name
      name = "www.tutorialspoint.com/"
      println(this::name.isInitialized)
      // It will return true
   }
}

fun main() {
   var obj=Tutorial();
   obj.checkLateInit();
}

輸出

執行程式碼後,將生成以下輸出:

false
true

在第二種情況下,變數**name**已初始化,因此返回True。

更新於:2021年10月27日

3K+ 次檢視

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告