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 次 |
| 最近记录: |