Spec-Zone.ru › Kotlin 1.7

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

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

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

  • as

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

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

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

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

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

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

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

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

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

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

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

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

  • in

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

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

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

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

  • !in

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

    • используется в выражениях 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

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

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

  • by

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

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

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

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

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

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

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

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

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

  • get

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

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

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

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

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

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

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

  • set

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

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

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

Последнее изменение: 10 августа 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