НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
1284 of 1310 menu

Ключевое слово const

Ключевое слово const используется для объявления констант времени компиляции. Константы, объявленные с этим модификатором, должны быть:

  • объявлены на верхнем уровне (вне класса) или как член объекта object или компаньона companion object
  • инициализированы значением примитивного типа (Int, Double, Boolean и т.д.) или строкой String
  • инициализированы во время компиляции, а не выполнения

Синтаксис

// Константа верхнего уровня const val CONSTANT_NAME = value // Константа внутри объекта object MyObject { const val CONSTANT_NAME = value } // Константа внутри компаньона class MyClass { companion object { const val CONSTANT_NAME = value } }

Пример

Объявление констант верхнего уровня:

const val PI = 3.14159 const val MAX_USERS = 100 const val APP_NAME = "MyApplication" const val IS_DEBUG = true

Пример

Объявление констант внутри объекта:

object MathConstants { const val PI = 3.14159 const val E = 2.71828 } val radius = 5.0 val area = MathConstants.PI * radius * radius println(area)

Результат выполнения кода:

Double 78.53975

Пример

Объявление констант внутри компаньон объекта:

class Configuration { companion object { const val TIMEOUT = 5000 const val MAX_RETRIES = 3 const val BASE_URL = "https://api.example.com" } } println(Configuration.TIMEOUT) println(Configuration.BASE_URL)

Результат выполнения кода:

Int 5000 String "https://api.example.com"

Пример

Недопустимое использование const (вызовет ошибку компиляции):

// Ошибка: const-переменная должна быть инициализирована примитивом или строкой const val CURRENT_TIME = System.currentTimeMillis() // Ошибка: const-переменная не может быть объявлена внутри функции fun myFunction() { const val LOCAL_CONST = 10 } // Ошибка: const-переменная не может быть объявлена в обычном классе class MyClass { const val CLASS_CONST = 10 // Не допускается }

Отличие const val от val

Основные различия между const val и обычным val:

  • const val вычисляется во время компиляции, val - во время выполнения
  • const val может содержать только примитивы и строки, val может содержать любые значения
  • const val должна быть инициализирована сразу, val может быть инициализирована позже
  • const val доступна только на верхнем уровне или в объектах/компаньонах

Смотрите также

  • ключевое слово val,
    для объявления неизменяемых переменных
  • ключевое слово var,
    для объявления изменяемых переменных
  • объекты object,
    для создания синглтонов и группировки констант
  • компаньоны companion object,
    для создания статических членов класса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить