|
@@ -0,0 +1,47 @@
|
|
|
+# Функция
|
|
|
+
|
|
|
+Функция — это отдельный блок программы, который выполняет одно конкретное действие. Обычно функции выглядят как маленькие программы внутри основного кода, и их можно запускать в разные моменты времени.
|
|
|
+
|
|
|
+# Для чего нужны функции
|
|
|
+
|
|
|
+В программировании часто приходится выполнять одни и те же действия: перебирать массив, создавать набор объектов или получать данные с сервера. Если каждый раз писать команды для этих действий с нуля, программа получится большой, громоздкой и нечитаемой.
|
|
|
+
|
|
|
+Именно в таких ситуациях нужны функции — «программы» в программе. Они позволяют один раз описать, как выполнять какое-то действие, а потом сколько угодно раз запускать это действие одной строчкой кода. Это можно сделать практически в любой момент выполнения, а еще функцию можно вызывать с разными аргументами — и получать разный результат.
|
|
|
+
|
|
|
+Благодаря функциям код становится более чистым, лаконичным и понятным:
|
|
|
+
|
|
|
+ - действия разделены по функциям, а не хаотично повторяются в разных местах кода;
|
|
|
+ - программу легче отлаживать, ведь разработчик сам знает, где «лежит» какое действие;
|
|
|
+ - код можно использовать повторно и не писать одно и то же снова и снова;
|
|
|
+ - функции облегчают работу с элементами интерфейса: при нажатии на кнопку можно просто вызывать функцию с нужным действием, а не писать код отдельно.
|
|
|
+
|
|
|
+# Что можно делать с функциями
|
|
|
+
|
|
|
+Задавать. Разработчик может создать функцию — описать, как она будет называться и что будет делать. Обычно описание начинается с ключевого слова function и имени функции, которое разработчик придумывает сам. Правда, в разных языках синтаксис может отличаться.
|
|
|
+
|
|
|
+Вызывать. Когда программист задает функцию, она не выполняется сразу — это просто описание. Чтобы функция сработала, ее нужно вызвать: написать в нужном участке кода команду вызова. Команда обычно состоит из названия функции и двух скобок.
|
|
|
+
|
|
|
+Вызывать с аргументами. Иногда, чтобы функция сработала как надо, ей нужно передать какие-то данные. Причем при разных вызовах эти данные могут различаться. В таком случае можно создать функцию с параметрами:
|
|
|
+
|
|
|
+Получать значения. Функция может возвращать в основную программу какой-то результат, и с ним можно работать: записывать в переменную или использовать в вычислениях. Обычно для возврата используют ключевое слово return, а после него пишут то, что нужно вернуть.
|
|
|
+
|
|
|
+Редактировать. Если изменить описание функции, ее работа поменяется во всех местах, где эту функцию вызывали. Результат тоже изменится.
|
|
|
+
|
|
|
+# Как работают функции
|
|
|
+
|
|
|
+Обычно функция работает как бы отдельно от остального кода. Она может пользоваться переменными и объектами, которые есть во внешней части программы, но так делать не рекомендуют: лучше передавать нужную информацию в функцию с помощью параметров.
|
|
|
+
|
|
|
+ - Чаще всего при передаче параметра в функцию отправляется копия значения. Это значит, что если внутри функции изменить переданное значение, то во внешнем коде оно останется прежним.
|
|
|
+ - В некоторых языках программирования разработчик сам может выбрать, что передать в функцию: копию значения или изначальную переменную. Во втором случае, если поменять переданную переменную в функции, она изменится и во внешнем коде.
|
|
|
+
|
|
|
+# Разница между функцией, методом и процедурой
|
|
|
+
|
|
|
+Метод. Так называют функцию внутри объекта. Объект — структура данных, которая описывает какую-то сущность: кнопку, предмет в компьютерной игре, запись из базы данных и так далее. У объекта есть свойства и методы.
|
|
|
+ - Свойства — это переменные, которые описывают объект. Например, вес персонажа, цвет предмета и так далее.
|
|
|
+ - Методы — это действия, которые объект может выполнять. Скажем, объект «кот» может выполнять действия «бегать», «прыгать», «спать», «есть», «вылизываться» и так далее.
|
|
|
+
|
|
|
+Процедура. Это понятие есть не во всех языках программирования. Так называют функцию, которая ничего не возвращает, зато меняет внешнее окружение и переданные ей аргументы. Она по определению не может быть чистой, но в некоторых ситуациях такое поведение тоже бывает нужно — например, процедурой можно оформить ту же запись в файл.
|
|
|
+
|
|
|
+# Литература
|
|
|
+
|
|
|
+https://blog.skillfactory.ru/glossary/funktsiya/
|