Система типов Kotlin обеспечивает null safety на этапе компиляции, различая nullable и non-nullable типы. По умолчанию переменные не могут содержать null, что значительно снижает риск NullPointerException.
Чтобы разрешить переменной содержать null, добавь ? к объявлению типа:
var name: String = "Kotlin" // non-nullable, cannot be null
var name: String? = null // nullable, can be null
?. — вызывает метод или обращается к свойству только если объект non-null, иначе возвращает null?: — предоставляет значение по умолчанию когда выражение слева равно null!! — заставляет nullable тип стать non-nullable; выбрасывает NullPointerException если значение null и должен использоваться с осторожностьюval length = name?.length ?: 0
Здесь ?. безопасно обращается к length, а ?: возвращает 0 если name равен null.
Компилятор принудительно проверяет null до компиляции кода, делая баги, связанные с null, явными и более простыми в обработке. Это исключает целую категорию runtime crashes, которые часто встречаются в Java, где null references не проверяются по умолчанию.
В Kotlin типы, не допускающие null, являются типами по умолчанию, и переменная, объявленная как String, не может содержать значение null, если только явно не отмечена с помощью ?.
Новый — ещё не проверен сообществом
Вы