首页 文章

Kotlin - 将非可空类型分配给可空类型

提问于
浏览
0

我从null-able字符串中为val nullable类型赋值 . 获得不期望的结果 . 代码如下:

val username3: String? = null       // null assigned to constant. can be re-assigned after a check.
    if (name2 != null) {
        val username3 = name2           // no error, statement execute and username3 remains null? is it a bug?
    }
    System.out.format("3) name2: %s, username3: %s%n", name2, username3)

结果是:3)name2:Jamie Smith,username3:null

1 回答

  • 2

    val username3 = name2 语句定义了一个新变量 username3 并将其值设置为 name2 . 它与您在第一行中定义的 username3 不同 . 新的 username3 的范围仅在条件范围内 .

    1)如果要在稍后阶段为变量赋值,则使用 var 而不是 val 定义它 .

    2)当你在变量名之前放置 var / val 时,你定义了一个新变量 . 如果要为已定义的变量赋值,请不要这样做 .

相关问题