РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗dtTsTmClL3 127 of 128 menu

Задачи на async в Dart. Часть 3

Создайте Stream из списка через Stream.fromIterable.

List<int> nums = [1, 2, 3, 4, 5];

Подпишитесь на Stream через listen и выведите каждое событие. Не забудьте отменить подписку через StreamSubscription.cancel() при необходимости.

Используйте await for для чтения Stream и соберите сумму всех чисел.

Преобразуйте Stream<int> через map: умножьте каждое значение на 10.

Отфильтруйте Stream через where: оставьте только чётные числа.

Соберите Stream в List через toList() и выведите результат.

Создайте StreamController<String>. Добавьте несколько событий через add, закройте контроллер через close() и прочитайте controller.stream через await for.

final controller = StreamController<String>(); controller.add('один'); controller.add('два'); await controller.close();

Сравните single-subscription и broadcast Stream: создайте обычный поток и asBroadcastStream() (или StreamController.broadcast()). Покажите, что на broadcast можно подписаться несколько раз, а на single-subscription — обычно один.

Напишите генератор Stream<String> ticks(int count) async*: каждую секунду через yield отдавайте строку 'tick N', где N — номер тика от 1 до count.

Итоговая задача на Stream: из списка строк создайте поток, отфильтруйте непустые, преобразуйте в верхний регистр через map и соберите в List.

List<String> words = ['dart', '', 'stream', ' ', 'async'];
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить