Последний аргумент-функция в Dart
Когда лямбда - последний аргумент функции, ее тело можно писать после закрывающей скобки вызова. Остальные аргументы остаются внутри скобок:
void withPrefix(String prefix, void Function() block) {
print("$prefix: ");
block();
}
withPrefix("log") {
print("saved");
};
Такая запись эквивалентна передаче лямбды последним аргументом внутри скобок:
int mapValue(int n, int Function(int) transform) {
return transform(n);
}
print(mapValue(5, (int x) => x * 10));
print(mapValue(5) (int x) {
return x * 10;
});
Если у вызова только один аргумент-функция, скобки с данными можно опустить и оставить только блок:
void runStep(void Function() block) {
block();
}
runStep {
print("step");
};
Напишите функцию onReady с одной
лямбдой void Function(). Вызовите ее,
передав блок за скобками, который выводит
"ready".
Напишите функцию formatNum: целое
и лямбда String Function(int). Вызовите
с числом 12 и блоком снаружи
скобок, который возвращает строку
"n=12".