В чем разница между var, val и const val

«В чем разница между var, val и const val» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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"
}