在Java中,可以使用null初始化引用变量,例如,可以像这样初始化String变量:
String str = null;
Run Code Online (Sandbox Code Playgroud)
但在Kotlin中,重点是避免尽可能多地使用null.那么如何在不使用null的情况下初始化属性
var str: String = ...
Run Code Online (Sandbox Code Playgroud)
Kotlin中的观点不是永远不会使用null
(和可空类型),而是使用方便的语言结构安全地使用它而不是害怕它.虽然尽可能使用非可空类型是理想的,但您不必总是避免它们,这就是为什么存在各种null
处理结构(安全调用,Elvis运算符等)的原因.
如果你可以延迟创建你的变量,直到有东西分配给它,那就是一个解决方案.如果你不能,那么将它标记为可空并分配null
给它是完全正常的,因为编译器将保护你不用它做危险的事情.
小智 5
用户lateinit
关键字。需要使用,然后初始化
private lateinit var str : String
fun myInit(){
str = "something";
}
Run Code Online (Sandbox Code Playgroud)
注意:访问未初始化的lateinit
属性会导致UninitializedPropertyAccessException
.
但是,lateinit
不支持基本数据类型,例如Int
.
归档时间: |
|
查看次数: |
4784 次 |
最近记录: |