В языке Kotlin мы по умолчанию должны инициализировать каждую переменную при ее вводе. Чтобы этого избежать, можно использовать ключевое слово lateinit. Ссылаясь на переменную lateinit до того, как она была инициализирована, вы получите исключение во время выполнения.
lateinit не может, однако, использоваться с примитивными типами. Почему это так?