Что возвращает return?

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Ключевое слово return неразрывно соседствует с функциями в большинстве языков программирования. Но почему мы зовём эту инструкцию именно return, почему это «возврат»? Часто думают, что return используется здесь в смысле возврата значения из функции. Логика такая: мы хотим, чтобы функция вернула какое‑то значение, поэтому команда называется return.

Но, если задуматься, то мы найдём это странным. Потому что «возвращать» звучит будто мы сначала этой функции что‑то дали, а она потом это что‑то нам возвращает. Когда я заказываю еду домой, то сервис не говорит «мы вернём вам еду на дом». Тут лучше подойдёт какое угодно слово: «создадим», «произведём», «сгенерируем», но точно не «вернём». Ведь суть заказа в том и состоит, что у меня сейчас этой еды нет, и я хочу её получить. А с «вернуть» звучит будто я им её сначала выдам.

На самом деле ключевое слово return в программировании используется не потому, что оно может что‑то возвращать. Способность функции «вернуть» значение (или, как мы поняли, точнее будет сказать, например, «создать»), передав его в место вызова функции — это лишь побочное действие, а не обязательное поведение.

Команда return изначально использовалась в отношении последовательности исполнения кода. Когда вы вызываете функцию, происходит скачок исполнения программы в другое место её исходного кода. Например, если вы вызываете функцию foobar, то выполнение кода в этом месте как бы останавливается, и компьютер перепрыгивает туда, где находится тело функции. После выполнения кода в теле и происходит тот самый возврат в место вызова функции.

В этом и состоит идея ключевого слова return. А то, что функция ещё вместе с этим попутно может передать значение — это необязательный бонус. И то, что в большинстве языков программирования это объединилось в одну команду — лишь дань удобству. То есть, когда мы пишем, например, return 42, то в развёрнутом виде это нужно читать как return AND pass 42.

Ключевое слово return коварно — оно означает не совсем то, за что его обычно принимают. И, хотя такая неточность вряд ли сможет кому‑то создать проблемы, полезно знать как оно устроено на самом деле.


Эту поразившую меня заметку я услышал в подкасте «Мысли и методы» Рахима Давлеткалиева (выпуск #53 «Неочевидные сложности новичков, часть 2», 09:36−13:00) и был удивлён своему неведению в таком, казалось бы, очевидном вопросе. Надеюсь, это оказалось познавательно не только для меня.

Источник: https://habr.com/ru/articles/790530/


Интересные статьи

Интересные статьи

Недавно мы писали о том, что сенат США одобрил законопроект, направленный на поддержку отечественны производителей электроники. Поддержка не только в виде выделения средств — здесь и снижение налого...
Медиаплеер WinAMP является едва ли не сакральным проигрывателем музыки (а позже и видео) для миллионов пользователей. И действительно, он отличается минимализмом, широким спектром функций, потребляе...
В мае 2020 года на Хабре достаточно активно обсуждались вопросы, связанные с перипетиями вхождения офисного пакета AlterOffice в Единый реестр российских программ для ЭВМ. Наиболее п...
Javascript — странный. Не верите? Ну попробуйте тогда преобразовать массив строк в целые числа с помощью map и parseInt. Запустите консоль (F12 на Chrome), вставьте код ниже и нажмите Enter ['...
Исследовательская группа по безопасности Varonis обнаружила и исследовала глобальную кибератаку, использующую новый штамм вредоносного программного обеспечения Qbot. Кампания активно нацелена н...