Выбор ответа Middle Flow, StateFlow и SharedFlow обновлено

combine и zip

Вопрос

Чем combine(a, b) отличается от a.zip(b)?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: combine берёт последние значения при любом изменении, zip пары. combine ждёт хотя бы по одному значению от каждого источника, а затем эмитит на каждое изменение любого, используя последнее значение остальных.

Варианты ответа

  1. Ничем, это синонимы для объединения двух потоков
  2. zip эмитит при изменении любого источника, а combine попарно
  3. combine берёт последние значения при любом изменении, zip парыправильный ответ
  4. combine работает только со StateFlow, а zip с любым Flow

Разбор

combine ждёт хотя бы по одному значению от каждого источника, а затем эмитит на каждое изменение любого, используя последнее значение остальных. Так комбинируют фильтры и данные в одно UiState. zip делает пары: первое с первым, второе со вторым, и ждёт оба. combine работает с любыми Flow.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.