Перейти к основному содержимому

Ключевые слова в языках программирования

Разработчику Аналитику Тестировщику
Архитектору Инженеру


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

Что такое ключевое слово?

Программирование включает в себя целую комбинацию инструментов, среди которых главным является использование ключевых слов.

Ключевые слова (keywords) — это зарезервированные слова в языке программирования, которые имеют специальное значение и не могут использоваться как имена переменных или функций.

К примеру, есть простой код, выводящий x в случае, если значение x равно 1:

if x == 1:
print(x)

Именно благодаря механизму ключевых слов, Python (на примере выше) понимает, что слово if это не пользовательское выражение, название переменной или значение, а именно условный оператор ЕСЛИ.

Ключевые слова — это своего рода "служебные части речи" языка программирования — они не несут прямого вычислительного содержания (в отличие, например, от литералов или идентификаторов), но задают структуру, управляют потоком, определяют контекст и устанавливают правила интерпретации остальных компонентов кода. Их нельзя использовать в качестве имён переменных, функций или классов — потому что это нарушало бы принцип однозначности синтаксического анализа и привело бы к неустранимой неопределённости при компиляции.

Например, нам нельзя называть переменную if, потому что в дальнейшем код просто поломается:

if if == 1:
print(if)

Логичный вопрос - в такой ситуации, что является ключевым словом, а что переменной? Вот именно из-за такой путаницы и есть правила именования.

Каких они бывают видов? Основными можно выделить:


Инструкции и команды

Инструкции и команды управления модулями / пространствами имён.

Эти ключевые слова используются для подключения библиотек, модулей, файлов и пространств имён.

Ключевое словоЯзыкНазначение
importPython, JSИмпорт модуля
from ... import ...PythonИмпорт конкретной части модуля
requireJavaScript (Node.js)Подключение модуля
usingC#Использование пространства имён
namespaceC++, C#Объявление пространства имён

Подключение модулей и организация кода — модульность и компонентный подход, управление зависимостями.


Определение переменных и констант

Эти ключевые слова указывают, что мы создаём переменную или константу.

Ключевое словоЯзыкНазначение
letJavaScriptПеременная с блочной областью видимости
varJavaScriptУстаревшая переменная
constJavaScript, C++Константа
defPythonОпределение функции
val,varKotlinНеизменяемая/изменяемая переменная
DimVB.NETОбъявление переменной

Объявление и использование имен — переменные в обзоре кода. Область видимости, время жизни и связь имени с памятью — жизненный цикл переменных; для JavaScript — область видимости и замыкания.


Типы данных

Эти ключевые слова обозначают типы данных, с которыми работает переменная.

Ключевое словоЯзыкНазначение
intJava, C, C#Целое число
float, doubleJava, C, C#Число с плавающей точкой
stringC#, TypeScriptСтрока
boolC#, C++Логический тип
voidJava, C, C#Отсутствие значения
anyTypeScriptЛюбой тип
objectC#, JSОбъект

Типы в коде и в памяти — обзор в главе о коде, машинное слово и типы, примитивы и маленькие типы.


Определяющие модификаторы (modifiers)

Эти ключевые слова задают свойства классов, методов, переменных и т.д.

Ключевое словоЯзыкНазначение
privateJava, C#Приватный доступ
publicJava, C#Публичный доступ
protectedJava, C#Защищённый доступ
staticJava, C#Статический элемент
finalJavaКонстанта / неизменяемый объект
readonlyC#Только для чтения
overrideJava, C#Переопределение метода
abstractJava, C#Абстрактный класс / метод
sealedC#Запрет наследования

private, public, protected и родственные ключевые слова — инкапсуляция и модификаторы доступа; static, override, abstract — в контексте наследования и полиморфизма.


Условные операторы

Эти ключевые слова управляют логикой выполнения программы.

Ключевое словоЯзыкНазначение
ifВсеУсловие
elseВсеАльтернатива
elif / elsifPython, PerlДополнительное условие
switch / caseJava, C#, JSМножественный выбор
defaultJava, C#Блок по умолчанию
matchPythonЗамена switch-case

Условный поток в коде — операторы; как if и ветвления работают при выполнении — условные операторы.


Циклы

Эти ключевые слова используются для повторного выполнения блоков кода.

Ключевое словоЯзыкНазначение
forВсеЦикл со счётчиком
whileВсеЦикл с условием
do ... whileJava, C#Цикл с постусловием
foreachC#, PHPПеребор коллекций
inPython, JSПроверка принадлежности / итерация

Повторение блоков в исходном коде — циклы; переходы и счётчики на уровне процессора — реализация циклов.


Функции и методы

Эти ключевые слова служат для объявления функций и методов.

Ключевое словоЯзыкНазначение
functionJavaScript, PHPОбъявление функции
defPythonОбъявление функции
lambdaPython, JavaАнонимная функция
returnВсеВозврат значения
voidJava, C#Функция без возвращаемого значения

Объявление, вызов и параметры — функции; стек вызовов и return при выполнении — внутреннее устройство функций.


Классы и объекты

Эти ключевые слова используются при работе с ООП.

Ключевое словоЯзыкНазначение
classВсеОбъявление класса
extendsJava, JSНаследование
implementsJavaРеализация интерфейса
interfaceJava, C#Интерфейс
newJava, C#Создание объекта
thisJava, JSСсылка на текущий объект
superJava, JSВызов родительского метода

Класс, объект, наследование и интерфейсы — раздел ООП: с введения через абстракцию и наследование до полиморфизма.


Обработка исключений

Эти ключевые слова отвечают за обработку ошибок.

Ключевое словоЯзыкНазначение
tryВсеБлок, где может быть ошибка
catchJava, C#Обработка ошибки
finallyJava, C#Выполняется всегда
throwJava, C#Генерация исключения
exceptPythonОбработка ошибки
finallyPythonВыполняется всегда

try, catch, throw и аналоги — ошибки, исключения и отказоустойчивость; неопределённое поведение при сбоях — неопределённое поведение.