Spec-Zone.ru › Kotlin 2

Ключевые слова и операторы

Жёсткие ключевые слова

Следующие токены всегда интерпретируются как ключевые слова и не могут использоваться в качестве идентификаторов:

  • as

    • используется для приведения типов.

    • указывает псевдоним для импорта

  • as? используется для безопасного приведения типов.

  • break завершает выполнение цикла.

  • class объявляет класс.

  • continue переходит к следующему шагу ближайшего внешнего цикла.

  • do начинает цикл do/while (цикл с постусловием).

  • else задаёт ветвь выражения if, которая выполняется, если условие ложно.

  • false задаёт значение «false» логического типа.

  • for начинает цикл for.

  • fun объявляет функцию.

  • if начинает выражение if.

  • in

    • указывает объект, по которому выполняется итерация в цикле for.

    • используется как инфиксный оператор для проверки, принадлежит ли значение диапазону, коллекции или другой сущности, в которой определён метод 'contains'.

    • используется в выражениях when с той же целью.

    • обозначает контравариантный параметр типа.

  • !in

    • используется как оператор для проверки, что значение НЕ принадлежит диапазону, коллекции или другой сущности, в которой определён метод 'contains'.

    • используется в выражениях when с той же целью.

  • interface объявляет интерфейс.

  • is

    • проверяет, что значение имеет определённый тип.

    • используется в выражениях when с той же целью.

  • !is

    • проверяет, что значение НЕ имеет определённый тип.

    • используется в выражениях when с той же целью.

  • null — это константа, представляющая ссылку на объект, которая не указывает ни на один объект.

  • object объявляет класс и его экземпляр одновременно.

  • package задаёт пакет для текущего файла.

  • return возвращает управление из ближайшей внешней функции или анонимной функции.

  • super

    • ссылается на реализацию метода или свойства в суперклассе.

    • вызывает конструктор суперкласса из вторичного конструктора.

  • this

    • ссылается на текущий получатель.

    • вызывает другой конструктор того же класса из вторичного конструктора.

  • throw выбрасывает исключение.

  • true задаёт значение «true» логического типа.

  • try начинает блок обработки исключений.

  • typealias объявляет псевдоним типа.

  • typeof зарезервировано для будущего использования.

  • val объявляет доступное только для чтения свойство или локальную переменную.

  • var объявляет изменяемое свойство или локальную переменную.

  • when начинает выражение when (выполняет одну из заданных ветвей).

  • while начинает цикл while (цикл с предусловием).

Мягкие ключевые слова

Следующие токены выступают в качестве ключевых слов в подходящем для них контексте и могут использоваться как идентификаторы в других контекстах:

  • by

    • делегирует реализацию интерфейса другому объекту.

    • делегирует реализацию методов доступа к свойству другому объекту.

  • catch начинает блок, который обрабатывает исключение определённого типа.

  • constructor объявляет первичный или вторичный конструктор.

  • delegate используется как цель применения аннотации.

  • dynamic обозначает динамический тип в коде Kotlin/JS.

  • field

    • объявляет явное поле хранения.

    • используется как цель применения аннотации.

  • file используется как цель применения аннотации.

  • finally начинает блок, который выполняется всегда при выходе из блока try.

  • get

    • объявляет геттер свойства.

    • используется как цель применения аннотации.

  • import импортирует объявление из другого пакета в текущий файл.

  • init начинает блок инициализации.

  • param используется как цель применения аннотации.

  • property используется как цель применения аннотации.

  • receiver используется как цель применения аннотации.

  • set

    • объявляет сеттер свойства.

    • используется как цель применения аннотации.

  • setparam используется как цель применения аннотации.

  • value вместе с ключевым словом class объявляет встраиваемый класс.

  • where задаёт ограничения для параметра обобщённого типа.

Ключевые слова-модификаторы

Следующие токены выступают в качестве ключевых слов в списках модификаторов объявлений и могут использоваться как идентификаторы в других контекстах:

  • abstract помечает класс или его член как абстрактный.

  • actual обозначает реализацию, специфичную для платформы, в мультплатформенных проектах.

  • annotation объявляет класс аннотации.

  • companion объявляет объект-компаньон.

  • const помечает свойство как константу времени компиляции.

  • crossinline запрещает нелокальные возвраты из лямбды, переданной встроенной функции.

  • data указывает компилятору сгенерировать канонические члены класса.

  • enum объявляет перечисление.

  • expect помечает объявление как специфичное для платформы, ожидая реализации в модулях платформ.

  • external помечает объявление как реализованное вне Kotlin (доступное через JNI или в JavaScript).

  • final запрещает переопределение члена.

  • infix позволяет вызывать функцию, используя инфиксную нотацию.

  • inline указывает компилятору встраивать функцию и переданные ей лямбды в месте вызова.

  • inner позволяет обращаться к экземпляру внешнего класса из вложенного класса.

  • internal помечает объявление как видимое в текущем модуле.

  • lateinit позволяет инициализировать свойство, допускающее значение null, вне конструктора.

  • noinline отключает встраивание лямбды, переданной встроенной функции.

  • open разрешает наследование от класса или переопределение члена.

  • operator помечает функцию как перегружающую оператор или реализующую соглашение.

  • out помечает параметр типа как ковариантный.

  • override помечает член как переопределение члена суперкласса.

  • private помечает объявление как видимое в текущем классе или файле.

  • protected помечает объявление как видимое в текущем классе и его подклассах.

  • public помечает объявление как видимое отовсюду.

  • reified помечает параметр типа встроенной функции как доступный во время выполнения.

  • sealed объявляет закрытый класс (класс с ограниченным наследованием).

  • suspend помечает функцию или лямбду как приостанавливаемую (пригодную для использования в корутине).

  • tailrec помечает функцию как хвосторекурсивную (что позволяет компилятору заменить рекурсию итерацией).

  • vararg разрешает передавать параметру переменное число аргументов.

Специальные идентификаторы

Следующие идентификаторы определяются компилятором в определённых контекстах и могут использоваться как обычные идентификаторы в других контекстах:

  • field используется внутри метода доступа к свойству для обращения к полю хранения свойства.

  • it используется внутри лямбды для неявного обращения к её параметру.

Операторы и специальные символы

В Kotlin поддерживаются следующие операторы и специальные символы:

  • +, -, *, /, % — математические операторы

    • * также используется для передачи массива параметру vararg.

  • =

    • оператор присваивания.

    • используется для задания значений параметров по умолчанию.

  • +=, -=, *=, /=, %= — операторы составного присваивания.

  • ++, -- — операторы инкремента и декремента.

  • &&, ||, ! — логические операторы «и», «или», «не» (для побитовых операций вместо них используйте соответствующие инфиксные функции).

  • ==, != — операторы равенства (для непримитивных типов преобразуются в вызовы equals()).

  • ===, !== — операторы ссылочного равенства.

  • <, >, <=, >= — операторы сравнения (для непримитивных типов преобразуются в вызовы compareTo()).

  • [, ] — оператор индексированного доступа (преобразуется в вызовы get и set).

  • !! утверждает, что выражение не допускает значения null.

  • ?. выполняет безопасный вызов (вызывает метод или обращается к свойству, если получатель не допускает значения null).

  • ?: возвращает значение справа, если значение слева равно null (это оператор Элвиса).

  • :: создаёт ссылку на член или ссылку на класс.

  • .

    • обращается к членам, включая вложенные классы и элементы перечисления.

    • объявляет и вызывает расширения.

    • уточняет имена и пакеты.

    • отделяет целую часть от дробной в литерале с плавающей точкой.

  • .., ..< создают диапазоны.

  • : отделяет имя от типа в объявлении.

  • ? помечает тип как допускающий значение null.

  • ->

    • отделяет параметры от тела лямбда-выражения.

    • отделяет параметры от объявления возвращаемого типа в функциональном типе.

    • отделяет условие от тела ветви выражения when.

  • @

    • вводит аннотацию.

    • вводит или обозначает метку цикла.

    • вводит или обозначает метку лямбды.

    • обозначает выражение 'this' из внешней области видимости.

    • обозначает внешний суперкласс.

  • ; разделяет несколько инструкций в одной строке.

  • $ обозначает переменную или выражение в шаблоне строки.

  • _

    • заменяет неиспользуемый параметр в лямбда-выражении.

    • заменяет неиспользуемый параметр в объявлении с деструктуризацией.

Сведения о приоритете операторов см. в этом справочнике по грамматике Kotlin.

24 июня 2026 г.
Обзор основ синтаксисаПакеты и импорты

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/keyword-reference.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API