Spec-Zone.ru › Kotlin 1.8

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

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

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

  • 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 объявляет inline-класс.

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

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

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

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

  • actual обозначает платформенно-специфическую реализацию в проектах с многоплатформенной поддержкой.

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

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

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

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

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

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

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

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

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

  • infix разрешает вызывать функцию с помощью инфиксной нотации.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

END_OF_DOCUMENT_MARKER

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

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

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

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

  • =

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

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

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

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

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

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

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

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

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

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

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

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

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

  • .. создает диапазон.

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

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

  • ->

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

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

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

  • @

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

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

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

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

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

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

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

  • _

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

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

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

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