Kotlin 中的“lateinit”变量
在 Kotlin 中,有一些标记不能用作命名变量等的标识符。这些标记称为关键字。简而言之,关键字是保留的,对编译器具有特殊意义,因此不能用作标识符。例如,
- 作为
- 休息
- 班级
- 继续
- 后期初始化
“lateinit”关键字:
Kotlin 中的“lateinit”关键字,顾名思义,就是用来声明那些保证在未来被初始化的变量。
“lateinit”变量:
使用“lateinit”关键字声明的变量称为“lateinit”变量。
句法:
lateinit var myVariable: Int
本文重点介绍如何检查“lateinit”变量是否已初始化。
如何检查“lateinit”变量是否已初始化?
在 Kotlin 1.2 版本中进行了一些更改,我们可以使用 isInitialized 方法检查“lateinit”变量是否已初始化。
句法:
myVariable.isInitialized
返回值:
false: If myVariable is not initialized yet
true: If myVariable is initialized
示例 1:
在下面的程序中,我们使用“lateinit”关键字声明了“myVariable”。在初始化之前,我们已经使用 isInitialized 方法检查了这个变量是否被初始化。后来我们将其初始化为“GFG”。现在我们再次检查这个变量是否被初始化。
Kotlin
// Kotlin program to demonstrate how to check
// whether lateinit variable is initialized or not
class GFG {
// Declaring a lateinit variable of Int type
lateinit var myVariable: String
fun initializeName() {
// Check using isInitialized method
println("Is myVariable initialized? " + this::myVariable.isInitialized)
// initializing myVariable
myVariable = "GFG"
// Check using isInitialized method
println("Is myVariable initialized? " + this::myVariable.isInitialized)
}
}
fun main(args: Array) {
// Calling method
GFG().initializeName()
}
Kotlin
// Kotlin program to demonstrate how to check
// whether lateinit variable is initialized or not
class GFG {
// Declaring a lateinit variable
lateinit var myVariable: String
fun initializeName() {
// Check using isInitialized method
println("Is myVariable initialized? " + this::myVariable.isInitialized)
// initializing myVariable
myVariable = "GeeksforGeeks"
// Check using isInitialized method
println("Is myVariable initialized? " + this::myVariable.isInitialized)
}
}
fun main(args: Array) {
// Calling method
GFG().initializeName()
}
输出:
示例 2:
在下面的程序中,我们使用“lateinit”关键字声明了“myVariable”。在初始化之前,我们已经使用 isInitialized 方法检查了这个变量是否被初始化。后来我们将其初始化为“GeeksforGeeks”。现在我们再次检查这个变量是否被初始化。
科特林
// Kotlin program to demonstrate how to check
// whether lateinit variable is initialized or not
class GFG {
// Declaring a lateinit variable
lateinit var myVariable: String
fun initializeName() {
// Check using isInitialized method
println("Is myVariable initialized? " + this::myVariable.isInitialized)
// initializing myVariable
myVariable = "GeeksforGeeks"
// Check using isInitialized method
println("Is myVariable initialized? " + this::myVariable.isInitialized)
}
}
fun main(args: Array) {
// Calling method
GFG().initializeName()
}
输出: