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

Поток из списка в Dart

Данные часто уже лежат в List. Фабрика Stream.fromIterable оборачивает список в Stream: элементы отдаются по одному в том же порядке, что при обходе коллекции.

Список строк становится потоком без ручного yield в цикле:

import 'dart:async'; void main() async { List<String> palette = ['cyan', 'magenta', 'yellow']; Stream<String> hues = Stream.fromIterable(palette); await for (String hue in hues) { print(hue); } }

Три названия цвета идут подряд. Метод fromIterable не копирует список ради нового типа - лишь меняет способ чтения на последовательную выдачу.

После обертки доступны те же операторы, что у других потоков:

import 'dart:async'; void main() async { List<int> ids = [4, 7, 10, 13]; Stream<int> stream = Stream.fromIterable(ids); Stream<int> big = stream.where((int id) { return id > 6; }); await for (int id in big) { print(id); } }

Печатаются 7, 10 и 13. Исходный список при этом не меняется.

Дан список "mon", "tue", "wed". Превратите его в поток через Stream.fromIterable и выведите все дни.

Список чисел 2, 5, 8, 11 соберите как поток, удвойте каждый элемент через map и напечатайте результат.

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