> Почему происходит ошибка при обращении к неинициализированной переменной в Kotlin и где это происходит (Kotlin, Android)

Уровень: senior · Роль: mobile · Категория: Технические вопросы

Компании: Ozon

Стек: Kotlin, Android

> Пример ответа

Ошибка при обращении к неинициализированной переменной в Kotlin возникает из-за строгой системы безопасности типов, которая предотвращает использование переменных до присвоения им значения. Это происходит в двух основных случаях:

  1. Локальные переменные - если объявить переменную без инициализации и попытаться её прочитать, компилятор выдаст ошибку: "Variable 'x' must be initialized". Например:

    fun test() {
        val x: Int
        println(x) // Ошибка компиляции
    }
  2. Свойства классов - для свойств, которые не инициализированы в конструкторе, Kotlin требует явного указания lateinit (для изменяемых ссылочных типов) или использования by lazy (для неизменяемых). Без этого компилятор выдаёт ошибку: "Property must be initialized or be abstract".

Исключение - поздняя инициализация с lateinit: если обратиться к такому свойству до инициализации, во время выполнения возникнет UninitializedPropertyAccessException. Это единственный случай, когда ошибка проявляется не на этапе компиляции, а в рантайме.

Таким образом, Kotlin предотвращает ошибки на этапе компиляции, за исключением явно отложенной инициализации через lateinit.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью