Одна из моих любимых вещей о Kotlin, относительно Java, это то, что вы можете использовать компилятор, чтобы гарантировать, что определенные значения никогда не будут нулевыми. (Swift также имеет эту функцию.)
var foo: Thing
var bar: Thing?
В этом примере foo
никогда не может быть нулевым. Мне не нужно загрязнять мой код защитными нулевыми проверками. С другой стороны, bar
может быть нулевым. Существует также удобный синтаксис для проверки, если что-то имеет значение null, и его использования.
bar?.x // bar.x, or null if bar is null
bar ?: defaultBar // bar, or defaultBar if bar is null
if (bar != null) {
// bar is now Thing here, not Thing? (Assuming bar is a parameter or local variable.)
}
Java в последнее время движется быстрее и добавляет функции, но я ничего об этом не слышал. Было ли это рассмотрено и отклонено? Или это когда-нибудь будет добавлено к Java?