Ответ
Что хотят услышать интервьюеры
Интервьюеры ожидают, что кандидат продемонстрирует понимание концепции nullable типов в Kotlin, объяснит их назначение и преимущества, а также приведет примеры использования и обработки таких типов, включая безопасные операции и обработку исключений. Кандидат должен продемонстрировать знание best practices при работе с nullable типами.
Что такое nullable типы в Kotlin
Nullable типы — это типы, которые могут принимать значение null. Они помогают избежать NullPointerException, обеспечивая более безопасное обращение с объектами, которые могут не иметь значения. В Kotlin, чтобы указать, что переменная может быть null, необходимо использовать знак вопроса (?) после типа.
Пример работы с nullable типами
fun main() {
// Объявление переменной, которая может быть null
var name: String? = null
// Присваиваем значение переменной
name = "Alice"
// Безопасный вызов (safe call) с использованием ?. для предотвращения исключений
println(name?.length) // Вывод: 5, если name не null
// Проверка на null с использованием let
name?.let {
println("Имя: $it") // Вывод: Имя: Alice
}
// Использование оператора Элвиса (?:) для задания значения по умолчанию
val length = name?.length ?: 0
println("Длина имени: $length") // Вывод: Длина имени: 5
// Пример с исключением, если name равен null
// println(name!!.length) // Вызывает исключение NullPointerException, если name == null
}Ключевые моменты:
- Объявление: Для создания nullable типа добавьте
?к типу переменной. - Безопасный вызов: Используйте
?.для доступа к свойствам, если объект может быть null. - let: Применяйте
letдля выполнения блока кода только если переменная не null. - Оператор Элвиса: Используйте
?:для задания значения по умолчанию в случае, если переменная null. - !! оператор: Используйте с осторожностью для явного указания, что объект не должен быть null.
Что могут спросить дальше
- Показать больше примеров обработки null
- Объяснить, как избежать NullPointerException
- Обсудить best practices при работе с nullable типами
- Рассказать о различиях между nullable и non-nullable типами