var объявляет изменяемую переменную — её значение можно переприсваивать несколько раз.val объявляет переменную только для чтения — она может быть присвоена только один раз и не может быть переприсвоена.var counter = 0
counter = 1 // разрешено
val name = "Kotlin"
name = "Java" // ошибка компиляции
val аналогично ключевому слову final в Java — однажды присвоенная ссылка не может указывать на другой объект.
val обеспечивает поверхностную неизменяемость — ссылка зафиксирована, но объект, на который она указывает, может оставаться изменяемым:
val list = mutableListOf(1, 2, 3)
list.add(4) // разрешено — сам список изменяем
list = mutableListOf() // ошибка компиляции — ссылка зафиксирована
val — это способствует неизменяемости, делая код безопаснее и предсказуемее.var только когда переменная действительно должна меняться со временем — например, счётчик в цикле или состояние, которое обновляется в рантайме.Переменная val в Kotlin обеспечивает полную глубокую неизменяемость, предотвращая как переприсваивание ссылки, так и изменение внутреннего состояния объекта.
Новый — ещё не проверен сообществом
Вы