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

Класс Stream

Класс Stream представляет собой источник асинхронных данных. В отличие от коллекций, которые хранят все элементы сразу, поток выдает значения по мере их поступления. Это может быть результат чтения файла, ответ от сервера или события пользовательского интерфейса. Чтобы начать получать данные из потока, необходимо вызвать метод listen и передать ему функцию-обработчик. Поток может быть одноразовым (single-subscription) или широковещательным (broadcast), что определяет количество возможных подписчиков.

Синтаксис

Stream<T> stream = Stream<T>.fromIterable(iterable); stream.listen((T event) { // обработка события });

Пример

Давайте создадим поток из списка чисел и подпишемся на него, чтобы вывести каждое значение в консоль:

void main() { Stream<int> stream = Stream.fromIterable([1, 2, 3, 4, 5]); stream.listen((int value) { print(value); }); }

Результат выполнения кода:

1 2 3 4 5

Пример

Давайте создадим поток строк и применим к нему преобразование с помощью метода map, чтобы перевести каждую строку в верхний регистр:

void main() { Stream<String> stream = Stream.fromIterable(['abcde', '12345']); Stream<String> upperStream = stream.map((String value) { return value.toUpperCase(); }); upperStream.listen((String value) { print(value); }); }

Результат выполнения кода:

"ABCDE" "12345"

Пример

Давайте отфильтруем поток чисел, оставив только четные значения, используя метод where:

void main() { Stream<int> stream = Stream.fromIterable([1, 2, 3, 4, 5]); Stream<int> evenStream = stream.where((int value) { return value % 2 == 0; }); evenStream.listen((int value) { print(value); }); }

Результат выполнения кода:

2 4

Смотрите также

  • метод listen,
    который подписывается на поток
  • метод map,
    который преобразует события потока
  • метод where,
    который фильтрует события потока
  • метод toList,
    который собирает все события в список
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить