首页 文章

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

提问于
浏览
2

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

String str = null;

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

var str: String = ...

4 回答

  • 0

    Kotlin中的观点不是永远不会使用 null (和可空类型),而是使用方便的语言结构安全地使用它而不是害怕它 . 虽然尽可能使用非可空类型是理想的,但您不应该存在各种 null 处理结构(安全调用,Elvis运算符等)的原因 .

    如果您可以延迟创建变量,直到您有一些东西要分配给它,那么's a solution. If you can' t,然后将其标记为可空并为其分配 null 是完全没问题的,因为编译器将保护您免受危险的事情的影响 .

  • 0

    用户 lateinit keywords.Need使用,然后初始化

    private lateinit var str : String
    fun myInit(){
        str = "something";
    }
    

    注意:访问未初始化的 lateinit 属性会导致 UninitializedPropertyAccessException .

    但是, lateinit 不支持基本数据类型,例如 Int .

  • 4

    你可以做

    var str: String
    
    ...
    
    str = "Some Awesome Value"
    

    如果你想让它可以为空,你可以做到

    var str: String?
    
  • 5

    作为选择:

    var str: String by Delegates.NotNull()
    

相关问题