Ответ
var — изменяемая переменная. Значение можно менять после инициализации.
var count = 5
count = 10 // OK
val — неизменяемая переменная (read-only). Значение задается один раз и не меняется.
val name = "Alice"
name = "Bob" // Ошибка компиляции
const val — константа времени компиляции. Должна быть объявлена на уровне файла или внутри object.
const val PI = 3.14
Ключевые отличия:
var— mutable,val/const val— immutable.const valтребует известного значения на этапе компиляции,valможет вычисляться в runtime.const valработает только с примитивами иString,val— с любыми типами.
Пример с const val:
object Config {
const val API_KEY = "123"
}