Лямбда параметром функции в Dart
Параметр функции может иметь тип лямбды. Внутри функции такой параметр вызывают как обычную функцию:
int applyTwice(int value, int Function(int) op) {
var first = op(value);
return op(first);
}
var result = applyTwice(3, (n) => n + 1);
print(result);
Лямбда без аргументов подходит для отложенного действия. Функция может вызвать переданный блок один или несколько раз:
void runSafe(void Function() action) {
print("begin");
action();
print("end");
}
runSafe(() {
print("work");
});
Предикат - лямбда с результатом bool -
удобен для проверки значения. Имя параметра
в лямбде задают явно:
bool checkValue(int n, bool Function(int) rule) {
return rule(n);
}
print(checkValue(8, (n) => n % 2 == 0));
Напишите функцию combine с двумя
целыми и лямбдой int Function(int, int).
Функция возвращает результат лямбды для
этих чисел. Выведите результат для
6 и 7 так, чтобы вернулось
их произведение.
Напишите функцию repeatAction:
целое times и лямбда void Function().
Тело лямбды должно выполниться столько
раз, сколько задано в times.
Проверьте выводом строки "tick"
три раза.