Метод map
Метод map класса Stream преобразует каждый элемент исходного потока
с помощью переданной функции и возвращает новый поток, содержащий
преобразованные значения. В первый параметр мы передаем функцию-преобразователь,
которая принимает текущий элемент потока и возвращает новое значение.
Метод не изменяет исходный поток, а создает новый на его основе.
Синтаксис
Stream<T> map<T>(T convert(E event))
Пример
Давайте преобразуем каждый элемент потока, умножив его на 2:
void main()
{
Stream<int> stream = Stream.fromIterable([1, 2, 3, 4, 5]);
Stream<int> res = stream.map((int item) => item * 2);
res.listen((int item) {
print(item);
});
}
Результат выполнения кода:
2
4
6
8
10
Пример
Давайте преобразуем каждый элемент потока строк в его длину:
void main()
{
Stream<String> stream = Stream.fromIterable(['abcde', '12345', 'a', 'ab']);
Stream<int> res = stream.map((String item) => item.length);
res.listen((int item) {
print(item);
});
}
Результат выполнения кода:
5
5
1
2
Пример
Давайте преобразуем числовой поток в поток строк с помощью метода map:
void main()
{
Stream<int> stream = Stream.fromIterable([1, 2, 3]);
Stream<String> res = stream.map((int item) => 'Number: $item');
res.listen((String item) {
print(item);
});
}
Результат выполнения кода:
"Number: 1"
"Number: 2"
"Number: 3"