Как объявить переменную в kotlin?
Скинули на паре кусок кода, скрин прикрепил, помогите разобрать. Там перед именем короткое слово и дальше тип через двоеточие, а у меня в студии такое же подчёркивает красным.
Нейросети, ИИ
Знакомства и отношения
Бизнес и финансы
Гороскопы и гадания
Скинули на паре кусок кода, скрин прикрепил, помогите разобрать. Там перед именем короткое слово и дальше тип через двоеточие, а у меня в студии такое же подчёркивает красным.
Вывод: по умолчанию бери val, var только когда реально нужно менять значение. Причины. val делает переменную неизменяемой после присваивания, это защищает от случайных багов, когда значение меняется где-то в коде незаметно для тебя, а потом непонятно откуда берётся не то число. var разрешает менять значение сколько угодно раз, но за это приходится платить лишней осторожностью, особенно в больших проектах, где переменную трогают из разных мест. Котлин специально подталкивает разработчиков к val, потому что неизменяемые данные проще отлаживать и меньше шансов сломать что-то в другой части кода, которую ты уже забыл. Так что если сомневаешься, ставь val, а компилятор сам подскажет, если реально понадобится менять значение, тогда переключишь на var.
Пока нет премиум-вопросов в подборке
Не нашли то, что искали?
Задайте свой вопрос
Лучший ответ
v4-pro
v4-pro
Как объявить переменную в kotlin?
Чеклист по val и var, с типичными ошибками новичков.
val объявляет переменную, значение которой присваивается один раз и больше не меняется, это ближе к понятию константы времени выполнения, а не жёсткой константе компиляции, о разнице поговорим ниже.
var объявляет переменную, значение которой можно менять сколько угодно раз после создания, это привычная переменная в классическом понимании из других языков.
Частая ошибка новичков: путать val с настоящей константой. val защищает от переприсваивания самой переменной, но если внутри лежит изменяемый объект, например список MutableList, содержимое этого списка можно менять свободно, даже если сам список объявлен через val, потому что меняется не ссылка, а то, на что она указывает.
Для настоящих констант, известных на этапе компиляции, используется const val, но только для примитивов и строк на уровне класса или файла, не внутри функции.
Правило по умолчанию: начинай с val, переключайся на var только когда компилятор явно требует, потому что тебе нужно менять значение. Такой подход в Kotlin называется предпочтением неизменяемости, и он не просто стиль, а способ избежать целого класса ошибок, где значение меняется в неожиданном месте кода.
Тип переменной необязательно писать явно, Kotlin выводит его сам из значения при инициализации, например val age = 20 автоматически станет Int, но если нужен другой тип, например Long, придётся указать его руками или добавить суффикс к числу.
Нельзя объявить переменную через val или var без начального значения и без явного типа одновременно, компилятор потребует хотя бы одно из двух, иначе не сможет определить тип переменной.