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