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

Введение в ленивый перебор в Dart

Ленивый перебор в Dart похож на цепочку where и map у списка, но шаги сначала только записываются. Обход элементов начинается, когда появляется конечное действие - команда, которой нужен готовый результат или явный проход по элементам.

У списка и множества можно сразу вызвать where или map: метод возвращает новый Iterable и сам по себе не перебирает исходные данные. Промежуточные шаги лишь описывают правила отбора и преобразования.

Пока вызван только отбор или преобразование, программа запоминает цепочку. Сравнения и вычисления с элементами произойдут внутри toList или при обходе в цикле, когда понадобится собрать итог.

Переменная с такой цепочкой хранит описание шагов, а не готовый список. Конечное действие может быть другим - посчитать длину, взять первый элемент или сложить числа. Отдельно элементы порождают функции с sync* и yield, если исходной коллекции еще нет.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить