Ключевое слово const
Ключевое слово const
используется для объявления
констант времени компиляции. Такие константы должны быть
инициализированы примитивными типами или строкой и
не могут быть изменены после инициализации.
Константы объявляются на верхнем уровне файла или
внутри объекта object
и компилируются в статические поля.
Синтаксис
const val CONSTANT_NAME = value
Пример
Объявление константы на верхнем уровне файла:
const val PI = 3.14159
const val APP_NAME = "MyApplication"
fun main() {
println(PI)
println(APP_NAME)
}
Результат выполнения кода:
Double 3.14159
String "MyApplication"
Пример
Объявление констант внутри объекта:
object Constants {
const val MAX_USERS = 100
const val TIMEOUT = 5000
}
fun main() {
println(Constants.MAX_USERS)
println(Constants.TIMEOUT)
}
Результат выполнения кода:
Int 100
Int 5000
Пример
Попытка изменить константу приведет к ошибке компиляции:
const val VERSION = 1.0
fun main() {
VERSION = 2.0 // Ошибка компиляции: Val cannot be reassigned
}
Пример
Константы могут использоваться в выражениях времени компиляции:
const val SIZE = 10
const val DOUBLE_SIZE = SIZE * 2
fun main() {
println(DOUBLE_SIZE)
}
Результат выполнения кода:
Int 20
Ограничения
Константы не могут быть объявлены внутри функций или классов
(кроме объектов object
). Они должны быть инициализированы
значениями примитивных типов или строками.
// НЕВЕРНО - нельзя внутри функции
fun test() {
const val LOCAL_CONST = 5 // Ошибка компиляции
}
// НЕВЕРНО - нельзя сложным типом
const val ARRAY = intArrayOf(1, 2, 3) // Ошибка компиляции