Что такое тип с вопросительным знаком

«Что такое тип с вопросительным знаком» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Тип с вопросительным знаком (?) в Kotlin обозначает nullable-тип, то есть переменная может хранить либо значение указанного типа, либо null.

Пример:

var name: String? = null // Допустимо null
name = "Alex" // Или строку

Без ? переменная не может быть null:

var name: String = "Alex" // Ошибка, если попытаться присвоить null

Особенности:

  • Требует проверки на null перед использованием (if, ?., !!, ?:)
  • Позволяет избежать NullPointerException на этапе компиляции
  • Часто используется в Android при работе с API, где поля могут отсутствовать