Выбор ответа Middle Flow, StateFlow и SharedFlow обновлено
combine и zip
Вопрос
Чем combine(a, b) отличается от a.zip(b)?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: combine берёт последние значения при любом изменении, zip пары. combine ждёт хотя бы по одному значению от каждого источника, а затем эмитит на каждое изменение любого, используя последнее значение остальных.
Варианты ответа
- Ничем, это синонимы для объединения двух потоков
zipэмитит при изменении любого источника, аcombineпопарноcombineберёт последние значения при любом изменении,zipпарыправильный ответcombineработает только соStateFlow, аzipс любым Flow
Разбор
combine ждёт хотя бы по одному значению от каждого источника, а затем эмитит на каждое изменение любого, используя последнее значение остальных. Так комбинируют фильтры и данные в одно UiState. zip делает пары: первое с первым, второе со вторым, и ждёт оба. combine работает с любыми Flow.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.