Вот основные операторы Flow, сгруппированные по категориям:
Преобразование:
map: Применяет функцию преобразования к каждому значению.filter: Отфильтровывает значения, не соответствующие предикату.take: Берет только первые N значений.drop: Пропускает первые N значений.transform: Более гибкий оператор для преобразования из одного Flow в другое, излучая ноль или более значений для каждого входящего значения.Комбинирование:
zip: Объединяет значения двух Flow попарно.combine: Комбинирует последние значения двух Flow.merge: Объединяет значения из нескольких Flow в один.Сглаживание (Flattening):
flattenConcat: Объединяет Flow из Flow, последовательно обрабатывая внутренние Flow.flattenMerge: Объединяет Flow из Flow, параллельно обрабатывая внутренние Flow (с ограничением concurrency).Обработка исключений:
catch: Перехватывает исключения и выполняет действие или возвращает аварийное значение.retry: Повторяет Flow при возникновении исключения.Терминальные операторы:
collect: Собирает все значения из Flow.reduce: Агрегирует значения Flow в одно.toList: Преобразует Flow в список.first: Берет только первое значение.single: Берет единственное значение (выбрасывает исключение, если значений больше одного).Операторы времени (часто из kotlinx.coroutines.flow.operators):
debounce: Излучает значение только после паузы в излучении.sample: Излучает последнее значение через интервал времени.throttle: Ограничивает скорость излучения значений.Пример использования map:
kotlin
Пример использования filter:
kotlin
Пример использования zip:
kotlin