Spec-Zone.ru › Kotlin 1.9

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

Ключевые слова

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

  • as

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

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

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

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

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

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

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

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

  • false задаёт значение 'false' типа Boolean.

  • 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' типа Boolean.

  • 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 используется внутри лямбда-выражения для неявной ссылки на его параметр.

END_OF_DOCUMENT_MARKER

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

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

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

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

  • =

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

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

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

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

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

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

  • ===, !== - операторы ссылочной эквивалентности.

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

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

  • !! утверждает, что выражение не null.

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

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

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

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

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

  • ? помечает тип как nullable.

  • ->

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

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

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

  • @

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

    • вводит или ссылается на метку цикла.

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

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

    • ссылается на внешний суперкласс.

  • ; отделяет несколько операторов на одной строке.

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

  • _

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

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

Для приоритета операторов, см. этот раздел в грамматике Kotlin.

Последнее изменение: 06 июля 2023
Последовательное описание Gradle

© 2010–2023 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