Ответ
Анонимные функции (лямбда-функции или лямбда-выражения) в Dart — это функции без имени, объявляемые непосредственно в месте использования. Они особенно полезны для коротких операций, передаваемых в качестве аргументов (коллбэков) в методы коллекций, виджетов или таймеров.
Основные особенности:
- Не имеют имени, объявляются через
(параметры) { тело }или стрелочный синтаксис(параметры) => выражение. - Имеют доступ к переменным из окружающей лексической области видимости (замыкание).
- Часто используются с
forEach,map,where,reduce,Future.then,GestureDetector.onTapи другими API.
Примеры использования:
void main() {
// Пример 1: Анонимная функция как аргумент forEach
var numbers = [1, 2, 3];
numbers.forEach((number) {
print(number * 2);
});
// Пример 2: Стрелочный синтаксис для однострочных выражений
var doubled = numbers.map((n) => n * 2).toList();
print(doubled); // [2, 4, 6]
// Пример 3: Сохранение в переменную
var greet = (String name) => 'Hello, $name!';
print(greet('Flutter')); // Hello, Flutter!
// Пример 4: Использование в Flutter-виджете (коллбэк)
// ElevatedButton(
// onPressed: () { // Анонимная функция
// print('Button pressed!');
// },
// child: Text('Press me'),
// )
}
Использование анонимных функций делает код более компактным и локализует логику, которая не требует отдельного именованного объявления.