Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗dtPmLmCl 294 of 412 menu
◀ ▶

Замыкание лямбды в Dart

Замыкание - это лямбда, которая использует имя из окружающего кода. Переменная объявлена раньше в той же функции или на верхнем уровне файла, а блок обращается к ней при вызове:

var base = 10; var addBase = (int n) => n + base; print(addBase(5));

Внешнее значение можно менять между вызовами. Лямбда каждый раз прочитает актуальное число:

var factor = 2; var scale = (int n) => n * factor; print(scale(4)); factor = 3; print(scale(4));

Локальная переменная функции тоже видна внутри лямбды, объявленной в этой функции:

int makeOffset(int delta) { return (int n) => n + delta; } var step = makeOffset(7); print(step(3));

Дана переменная:

var rate = 2;

Сохраните в applyRate лямбду с целым параметром, которая умножает аргумент на rate. Выведите результат для 5.

Даны переменные:

var tag = "id"; var prefix = "field";

Сохраните в labelFor лямбду без параметров, которая возвращает строку "field: id" из этих имен. Выведите результат.

Определите, что выведет программа:

var shift = 1; var bump = (int n) => n + shift; print(bump(4)); shift = 5; print(bump(4));
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить