Какие знаешь операторы Flow

«Какие знаешь операторы Flow» — вопрос из категории Coroutines и Flow, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Flow в Kotlin предоставляет несколько операторов для обработки данных:

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