Как объявляются и используются функции в различных языках программирования?
Функция — это подпрограмма, которая может принимать параметры, выполнять действия и возвращать результат. В разных языках синтаксис отличается, но общая структура похожа.
Обычно у функции есть:
- имя;
- список параметров;
- тип результата или неявный результат;
- тело функции;
- оператор возврата результата.
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 с.