Создание собственных функций
Как превратить повторяющиеся действия в переиспользуемые блоки кода
Функции — уже знакомые нам инструменты
Ранее мы уже многократно использовали функции:
Во всех случаях функция превращает входные данные в выходные.
Вход и выход — основа функции
- Входные данные (аргументы) — то, что мы передаём функции при вызове;
- Выходные данные (результат) — то, что функция возвращает после выполнения.
По сути, функция — это механизм для превращения одних данных в другие.
Синтаксис объявления функции
Функция — это блок кода, который один раз описывается, а затем может многократно использоваться.
Функция как сущность
У функции есть:
- тип — что она возвращает (
int,float, и т.д.); - название — по которому к ней обращаются;
- набор действий — что она делает, когда её вызывают.
Это похоже на переменную (у неё тоже есть тип, имя и содержимое), но вместо данных — действия.
Пример: создание собственной функции modul_chisla()
Воссоздадим поведение math.abs(), но своими руками:
Мы сами решили, что делает эта функция, и теперь можем использовать её где угодно.
Функция с массивами: mul_all()
Создадим функцию, которой ещё не было — она вычисляет произведение всех чисел в динамическом массиве:
Обратите внимание: в теле main() переменная some_arr не объявлена. Она существует только внутри функции и заменяется на реальный аргумент при вызове.
Это ключевой принцип: описание функции использует временные имена, а вызов — реальные данные, подходящие по типу.
void-функции: когда не нужно возвращать значение
Слово void переводится как «пустота». Функция типа void ничего не возвращает, а значит, не требует оператора return.
Такие функции полезны, когда нужно выполнить действие (например, вывести данные), но не получить результат.
void-функции — это «действия без хранимого результата», но они тоже делают ваш код чище и избавляют от копипасты.
Ключевое отличие
- Функции с типом (
int,float, и т.д.) возвращают значение и обычно присваиваются переменной: - Функции типа
voidничего не возвращают и вызываются как отдельная команда:
Это не просто синтаксис — это отражение смысла: делаете ли вы вычисления или производите побочный эффект (вывод, рисование и т.д.).