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

Метод transform

Метод transform преобразует поток данных с помощью заданного преобразователя. В первый параметр мы передаем объект типа StreamTransformer, который описывает правила преобразования элементов потока. Метод возвращает новый поток, элементы которого являются результатом применения преобразователя к исходному потоку.

Синтаксис

Stream<T> transform<S>(StreamTransformer<T, S> streamTransformer)

Пример

Давайте создадим поток из списка чисел и преобразуем его, умножая каждый элемент на 2 с помощью StreamTransformer.fromHandlers:

import 'dart:async'; void main() { Stream<int> stream = Stream.fromIterable([1, 2, 3, 4, 5]); StreamTransformer<int, int> transformer = StreamTransformer.fromHandlers( handleData: (value, sink) { sink.add(value * 2); } ); Stream<int> res = stream.transform(transformer); res.listen((value) => print(value)); }

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

2 4 6 8 10

Пример

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

import 'dart:async'; void main() { Stream<String> stream = Stream.fromIterable(['a', 'b', 'c', 'd', 'e']); StreamTransformer<String, String> transformer = StreamTransformer.fromHandlers( handleData: (value, sink) { sink.add(value + '!'); } ); Stream<String> res = stream.transform(transformer); res.listen((value) => print(value)); }

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

"a!" "b!" "c!" "d!" "e!"

Пример

Давайте преобразуем поток чисел, отфильтровывая только четные значения с помощью StreamTransformer.fromHandlers:

import 'dart:async'; void main() { Stream<int> stream = Stream.fromIterable([1, 2, 3, 4, 5]); StreamTransformer<int, int> transformer = StreamTransformer.fromHandlers( handleData: (value, sink) { if (value % 2 == 0) { sink.add(value); } } ); Stream<int> res = stream.transform(transformer); res.listen((value) => print(value)); }

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

2 4

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

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