вместо этого, например:
я есть следующий фрагмент кода:
val foo: String? = null
foo.run { println("foo") }
У меня есть здесь переменная Nullablefoo
это на самом деле установлено вnull
с последующим небезопасным.run()
вызов.
Когда я запускаю фрагмент кода, я получаюfoo
распечатаны несмотря на то, чтоrun
метод вызывается наnull
, Почему это? Почему бы и нетNullPointerException
? Почему компилятор допускает небезопасный вызов необязательного значения?
Если я пройдуprintln(foo)
Получаю сочнуюnull
в консоли, так что я думаю, можно с уверенностью предположить, чтоfoo
на самом делеnull
.