Вот пример:
Observable X
представляет последовательность a
, b
, c
.
Observable Y
представляет собой последовательность α
, β
, γ
.
Сжатие наблюдаемых X
и Y
с использованием функции f
возвращает новую наблюдаемую, которая представляет последовательность f(a, α)
, f(b, β)
, f(c, γ)
.
Если вам нужен еще более конкретный пример,
Observable X
представляет последовательность 2
, 3
, 4
.
Observable Y
представляет собой последовательность 5
, 6
, 7
.
Сжатие наблюдаемых X
и Y
с использованием функции "умножения" возвращает новую наблюдаемую, которая представляет последовательность 10
, 18
, 28
.
В JavaDo c «указанная функция объединителя» относится к функции f
. Фраза «указанная функция» во втором процитированном вами слове также относится к этому. Обратите внимание, как эта функция объединяет несколько элементов, по одному от каждого наблюдаемого (например, 2
и 5
), в один элемент в возвращаемом наблюдаемом (например, 10
).
«Комбинация» в обоих JavaDo c и второе, что вы процитировали, относятся к кортежам элементов из каждого наблюдаемого, которое вы архивируете, например (2, 5)
или (3, 6)
.
Обратите внимание, что zip
возвращает один единственный Observable
объект, который представляет собой последовательность значений. JavaDo c описывает этот единственный объект Observable
, тогда как второе, что вы процитировали, описывает последовательность , представленную объектом Observable
(отсюда и формулировка «для каждой комбинации»). Возможно, именно поэтому вы неправильно поняли второй отрывок, в котором говорится, что zip
возвращает несколько значений. Оба отрывка говорят правду, но описывают разные вещи.
Повторяю: zip
возвращает одиночный Observable
объект, который представляет последовательность значения.