Ответ
Flow в Kotlin предоставляет несколько операторов для обработки данных:
- map - преобразует каждый элемент:
flow.map { it * 2 }
- filter - фильтрует элементы:
flow.filter { it > 10 }
- transform - более гибкое преобразование:
flow.transform { emit(it * 2) }
- take - берет первые N элементов:
flow.take(5)
- drop - пропускает первые N элементов:
flow.drop(2)
- collect - терминальный оператор для получения значений:
flow.collect { println(it) }
- zip - объединяет два потока:
flow1.zip(flow2) { a, b -> a + b }
- combine - комбинирует последние значения:
flow1.combine(flow2) { a, b -> a + b }
- onEach - выполняет действие для каждого элемента:
flow.onEach { delay(100) }
- buffer - буферизирует элементы:
flow.buffer()