Тип Function
Тип Function в Dart представляет функции как объекты первого класса. Это означает, что функцию можно присвоить переменной, передать другой функции в качестве аргумента или вернуть из функции как результат. Переменная типа Function хранит ссылку на функцию с определённой сигнатурой. В Dart также существуют типизированные функциональные типы, которые описывают конкретные параметры и возвращаемый тип, например int Function(int, int). Первый параметр в таком типе указывает возвращаемое значение, а в круглых скобках перечисляются типы аргументов.
Синтаксис
Function variableName = functionName;
ReturnType Function(ParamType1, ParamType2) variableName = functionName;
Пример
Давайте присвоим функцию переменной типа Function и вызовем её через эту переменную:
void main()
{
Function func = (int a, int b) => a + b;
print(func(2, 3));
}
Результат выполнения кода:
5
Пример
Давайте используем типизированный функциональный тип, чтобы явно указать сигнатуру функции:
int apply(int Function(int, int) operation, int a, int b)
{
return operation(a, b);
}
void main()
{
int Function(int, int) add = (int a, int b) => a + b;
print(apply(add, 4, 5));
}
Результат выполнения кода:
9
Пример
Давайте передадим функцию в качестве аргумента и сохраним результат в переменную:
void main()
{
Function greet = (String name) => 'Hello, $name';
String res = greet('abcde');
print(res);
}
Результат выполнения кода:
"Hello, abcde"