Как объявляются и используются функции в различных языках программирования?

Функция — это подпрограмма, которая может принимать параметры, выполнять действия и возвращать результат. В разных языках синтаксис отличается, но общая структура похожа.

Обычно у функции есть:

C и C++

int sum(int a, int b) {
  return a + b;
}

int result = sum(3, 5);

Перед именем функции указывается тип возвращаемого значения.

Pascal

function Sum(a, b: Integer): Integer;
begin
  Sum := a + b;
end;

В Pascal тип результата указывается после списка параметров.

C#

int Sum(int a, int b)
{
    return a + b;
}

int result = Sum(3, 5);

В C# функции внутри классов обычно называются методами.

Java

static int sum(int a, int b) {
    return a + b;
}

int result = sum(3, 5);

В Java функции также оформляются как методы классов.

TypeScript

function sum(a: number, b: number): number {
  return a + b;
}

const result = sum(3, 5);

Можно использовать стрелочные функции.

const multiply = (a: number, b: number): number => a * b;

Python

def sum_numbers(a, b):
    return a + b

result = sum_numbers(3, 5)

В Python типы параметров можно не указывать, но можно добавить аннотации.

def sum_numbers(a: int, b: int) -> int:
    return a + b

Использование функций

Функцию можно вызвать, передав аргументы.

const value = sum(10, 20);

Результат можно:

Параметры

Параметры — это имена внутри объявления функции. Аргументы — это конкретные значения при вызове.

function greet(name: string): string {
  return "Привет, " + name;
}

greet("Анна");

Здесь name — параметр, а Анна — аргумент.

Хорошая функция

Хорошая функция должна:

Вывод

функции в разных языках объявляются по-разному, но везде служат для выделения повторно используемой логики. Они принимают аргументы, выполняют код и при необходимости возвращают результат.

Источники

  • Семакин И.Г. Основы программирования и баз данных. Учебник. - М.: Академия, 2014. - 224 с.
  • Симонова Е.В. Структуры данных в C#. Линейные и нелинейные динамические структуры. - Лань, 2018. - 152 с.
  • Бертран Мейер. Почувствуй класс. Учимся программировать хорошо с объектами и контрактами. - М.: Национальный Открытый Университет "ИНТУИТ": БИНОМ. Лаборатория знаний, 2011. - 775 с.
  • Мэтт Вайсфельд. Объектно-ориентированное мышление. - СПб.: Питер, 2014. - 304 с.
  • Ривест Р., Штайн К., Лейзерсон Ч., Кормен Т. Алгоритмы: построение и анализ. - М.: Вильямс, 2007. - 1296 с.
  • Стивенс Род. Алгоритмы. Теория и практическое применение. - М.: Эксмо, 2017. - 544 с.
  • Рублев В.С. Основы теории алгоритмов. - 2-е издание, исправленное. - М.: Научный мир, 2008. - 128 с.
  • Гольдберг Г.Л. Основы алгоритмизации и программирования. - М.: Академия, 2012. - 384 с.
  • Лаврищева И.В. Технология программирования. - М.: Горячая линия - Телеком, 2011. - 400 с.
  • Сергеев И.С., Сухоруков А.И., Шестаков А.А. Программирование: учебник для вузов. - М.: БИНОМ. Лаборатория знаний, 2013. - 512 с.