Back to questions
Junior — Middle
85
Какое преимущество имеет использование анонимных функций по сравнению с обычными функциями в программировании?
Companies where asked
ГК Адепт
Answer from AI
sobes.tech AI
Анонимные функции (лямбда-выражения) имеют несколько преимуществ по сравнению с обычными именованными функциями:
- Локальность: позволяют определить функцию прямо там, где она нужна, улучшая читаемость и поддерживаемость кода.
- Удобство передачи: легко передаются как аргументы в другие функции, что упрощает работу с колбэками и функциональным стилем.
- Замыкания: могут захватывать переменные из окружающего контекста, что невозможно с обычными функциями без дополнительных конструкций.
Пример в C++:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> nums = {1, 2, 3, 4, 5};
int factor = 2;
std::for_each(nums.begin(), nums.end(), [factor](int &n) { n *= factor; });
for (int n : nums) std::cout << n << " "; // Выведет: 2 4 6 8 10
}
Здесь анонимная функция умножает каждый элемент на factor, захватывая его из внешнего контекста.