如何在Java8中使用Observable zip

如何在Java8中使用Observable zip,java,java-8,rx-java,Java,Java 8,Rx Java,最近我遇到了一些使用以下函数的代码,但是很难理解如何使用此函数 zip(java.lang.Iterable<? extends Observable<?>> ws, FuncN<? extends R> zipFunction) 对于java doc,它表示返回一个observate,该observate发出一个指定组合器函数的结果,该函数应用于其他observate的Iterable按顺序发出的项的组合。。我已经读了好几遍了,但还是不明白它的意思 我还了

最近我遇到了一些使用以下函数的代码,但是很难理解如何使用此函数

zip(java.lang.Iterable<? extends Observable<?>> ws, FuncN<? extends R> zipFunction)
对于java doc,它表示返回一个observate,该observate发出一个指定组合器函数的结果,该函数应用于其他observate的Iterable按顺序发出的项的组合。。我已经读了好几遍了,但还是不明白它的意思

我还了解到zip函数本身意味着通过一个指定函数将多个观测值的发射组合在一起,并根据该函数的结果为每个组合发射单个项目

我原本以为我知道zip是干什么的,但读完这篇文章后,我感到困惑。zip函数不是只返回一个值吗?为什么基于此函数的结果对每个组合都返回一个值

任何人都可以用简单的术语和示例来说明上述功能以及zip的一般含义。

以下是一个示例:

可观测X代表序列a、b、c

可观测Y表示序列α、β、γ

使用函数f压缩可观测的X和Y将返回一个 代表序列fa,α,fb,β, fc,γ

如果你想要一个更具体的例子

可观测X代表序列2、3、4

可见Y代表序列5、6、7

使用乘法函数压缩观测值X和Y将返回一个 代表序列10,18, 二十八,

在JavaDoc中,指定的组合器函数引用函数f。您引用的第二件事中的短语a指定函数也指这一点。请注意,此函数如何将多个项目组合在一起,每个可观察项目(例如2和5)中的一个项目组合到返回的可观察项目(例如10)中的一个项目中

JavaDoc和您引用的第二个东西中的一个组合指的是您正在压缩的每个可观察项的元组,例如2、5或3、6

请注意,zip返回一个可观察对象,它表示一系列值。JavaDoc描述了这个单一的可观察对象,而您引用的第二件事描述了可观察对象所表示的序列,因此每个组合的措辞。这可能是您误解第二段的原因,因为它说zip返回多个值。这两篇摘录都说的是实话,但它们描述的是不同的事情


我重申一下:zip返回一个表示一系列值的可观察对象。

如果搜索javadoc,第一个结果会有一个扩展描述和一个图表。