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