Spec-Zone.ru › Kotlin 1.6

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

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

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

  • 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 (цикл с предусловием).

END_OF_DOCUMENT_MARKER

Ключевые слова (Soft)

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

  • 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 разрешает инициализацию необязательного свойства вне конструктора.

  • 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.

Последнее изменение: 07 апреля 2022
Сериализация Gradle

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