如何在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。
廣告