Kotlin - присвоение необнуляемому типу обнуляемому типу - PullRequest
0 голосов
/ 02 октября 2018

Я присваиваю значение допустимому типу из пустой строки.Получение неожиданных результатов.Код выглядит следующим образом:

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 Ответ

0 голосов
/ 02 октября 2018

val username3 = name2 оператор определяет новую переменную username3 и устанавливает ее значение name2.Это не тот username3, который вы определили в первой строке.Новая область действия username3 доступна только в том случае, если условие.

1) Если вы хотите присвоить значение переменной на более позднем этапе, определите его с помощью var, а не val.

2) когда вы ставите var / val перед именем переменной, вы определяете новую переменную.Не делайте этого, если хотите присвоить значение уже определенной переменной.

...