如何在Kotlin中初始化引用变量

Ton*_*Joe 2 java kotlin

在Java中,可以使用null初始化引用变量,例如,可以像这样初始化String变量:

String str = null;
Run Code Online (Sandbox Code Playgroud)

但在Kotlin中,重点是避免尽可能多地使用null.那么如何在不使用null的情况下初始化属性

var str: String = ...
Run Code Online (Sandbox Code Playgroud)

zsm*_*b13 5

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.