Ram*_*mar 2 terminology variable-assignment kotlin
在Kotlin文档中,提到了有关延迟分配的内容
val a: Int = 1 // immediate assignment
val b = 2 // `Int` type is inferred
val c: Int // Type required when no initializer is provided
c = 3 // **deferred assignment**
Run Code Online (Sandbox Code Playgroud)
延迟分配是什么意思?
如文档中所述,val c: Int
之前声明的内容c
在以下行中初始化。
val
这意味着您可以在声明函数后的几行内初始化不可为 null 的函数。
例如这样:
class Hichhiker {
fun foo() {
val firstName: String
val lastName: String
val age: Int
firstName = "Arthur"
lastName = "Dent"
age = 40
}
}
Run Code Online (Sandbox Code Playgroud)
而不是这个:
class Hichhiker {
fun foo() {
val firstName = "Arthur"
val lastName = "Dent"
val age = 40
}
}
Run Code Online (Sandbox Code Playgroud)
val
因此,即使赋值被某些代码行延迟,编译器也会识别不可空值的初始化。
对于类级别上类似且更常用的内容,请参阅Lateinit和像lazy() 这样的委托
归档时间: |
|
查看次数: |
516 次 |
最近记录: |