Back to questions
Junior
119
questionbank
В чем различие между анонимными функциями и обычными?
Sobes Copilot
Get answers in real time
Answer from AI
sobes.tech AI
Анонимные функции — это функции без имени. Они часто используются для единоразового вызова или в качестве колбэков.
Основные отличия:
- Имя: Обычные функции имеют имя и могут быть вызваны по нему. Анонимные функции имени не имеют.
- Определение: Обычные функции определяются с помощью ключевого слова
func(или эквивалентного в других языках) и имени, за которым следуют параметры и тело. Анонимные функции определяются "на лету", часто в месте их использования. - Передача: Анонимные функции часто передаются в качестве аргументов другим функциям (например, в методах
map,where,forEach). Обычные функции также могут быть переданы, но их чаще используют для определения логики, вызываемой по имени. - Область видимости: Анонимные функции имеют доступ к переменным из области видимости, где они были определены (эффект "захвата" замыкания). Обычные функции обычно имеют свою собственную область видимости.
Пример в Dart/Flutter:
Обычная функция:
void greet(String name) {
print('Hello, $name!');
}
// Вызов обычной функции
greet('World');
Анонимная функция (лямбда):
// Использование анонимной функции при итерации списка
List<int> numbers = [1, 2, 3, 4, 5];
numbers.forEach((number) {
print(number * 2); // Анонимная функция, выполняющая умножение
});
// Анонимная функция, присвоенная переменной
var multiplyByTwo = (int number) => number * 2;
print(multiplyByTwo(5));