Ключевые слова и операторы
Ключевые слова
Следующие токены всегда интерпретируются как ключевые слова и не могут использоваться в качестве идентификаторов:
-
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.typealiasобъявляет псевдоним типа.typeofзарезервировано для будущего использования.valобъявляет свойство или локальную переменную для чтения.varобъявляет свойство или локальную переменную для записи.whenначинает выражение when (выполняет одну из заданных ветвей).whileначинает цикл while (цикл с предусловием).
Ключевые слова
Следующие токены используются в качестве ключевых слов в соответствующих контекстах и могут быть использованы как идентификаторы в других контекстах:
-
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используется внутри лямбды для неявной ссылки на ее параметр.
Операторы и специальные символы
Kotlin поддерживает следующие операторы и специальные символы:
-
+,-,*,/,%- математические операторы*также используется для передачи массива в параметр vararg.
-
=оператор присваивания.
используется для указания значений по умолчанию для параметров.
+=,-=,*=,/=,%=- операторы расширенного присваивания.++,--- операторы инкремента и декремента.&&,||,!- логические операторы 'и', 'или', 'не' (для битовых операций используйте соответствующие инфиксные функции).==,!=- операторы равенства и неравенства (преобразуются в вызовыequals()для не-примитивных типов).===,!==- операторы ссылочного равенства.<,>,<=,>=- операторы сравнения (преобразуются в вызовыcompareTo()для не-примитивных типов).[,]- оператор индексированного доступа (преобразуется в вызовыgetиset).?.выполняет безопасный вызов (вызывает метод или обращается к свойству, если получатель не null).?:принимает правое значение, если левое значение равно null (оператор Эльвиса).::создает ссылку на член функции или ссылку на класс...создает диапазон.:отделяет имя от типа в объявлении.?помечает тип как nullable.-
->отделяет параметры и тело лямбда-выражения.
отделяет параметры и тип возвращаемого значения в типе функции.
отделяет условие и тело ветви выражения when.
-
@вводит аннотацию.
вводит или ссылается на метку цикла.
вводит или ссылается на метку лямбды.
ссылается на 'this' выражение из внешней области видимости.
ссылается на внешний суперкласс.
;отделяет несколько операторов в одной строке.$ссылается на переменную или выражение в строковом шаблоне.-
_заменяет неиспользуемый параметр в лямбда-выражении.
заменяет неиспользуемый параметр в разборе объявления.
Порядок приоритета операторов см. в данном справочном материале в грамматике Kotlin.
© 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