Как создать отложенно инициализируемую переменную в kotlin?
Привет, если переменная объявляется не сразу а потом когда придут данные с сервера, подскажите, ее как то надо помечать особо или можно просто ноль поставить и потом уже пере
Нейросети, ИИ
Знакомства и отношения
Бизнес и финансы
Гороскопы и гадания
Привет, если переменная объявляется не сразу а потом когда придут данные с сервера, подскажите, ее как то надо помечать особо или можно просто ноль поставить и потом уже пере
v4-pro
lateinit var name: String - объявление без значения, присвоение позже. Пример: lateinit var recyclerView: RecyclerView, заполняется в onCreate.
4.20
Разница между lateinit и var с null на пальцах, чеклист:
Пока нет премиум-вопросов в подборке
Не нашли то, что искали?
Задайте свой вопрос
Лучший ответ
4o
4o
Как создать отложенно инициализируемую переменную в kotlin?
Способ | Как выглядит | Когда использовать lateinit var | lateinit var name: String | Когда переменная точно не null-типа, но значение появится позже, не в конструкторе var с null | var name: String? = null | Когда значение реально может остаться пустым, и это нормальная ситуация по логике программы lazy | val name: String by lazy { вычисление } | Когда значение вычисляется один раз и после этого не меняется, инициализация откладывается до первого обращения
Пример из практики: в Activity часто объявляют lateinit var recyclerView: RecyclerView, потому что реальный объект появляется только в onCreate после setContentView, а не в момент создания класса. С обычным var и null пришлось бы постоянно проверять на null перед каждым использованием, что загромождает код. Если попытаться обратиться к lateinit переменной до инициализации, приложение упадет с понятной ошибкой UninitializedPropertyAccessException, это и есть главное отличие от null-безопасности.