Y a-t-il une différence sémantique dans la composition par paire avec Zip()
vs zipWith(
) dans RxJava? Le choix entre le Zip statique et le .zipWith est-il purement stylistique?
Commodité et contexte.
Le Zip
statique est utile lorsque deux sources sont déjà assemblées et que vous voulez maintenant les compresser ensemble. La plupart du temps, ils sont eux-mêmes de longues chaînes ou viennent de partout.
Observable<T1> source1 = op().op().op().op().op();
Observable<T2> source2 = op().op().op().op().op();
Observable.Zip(source1, source2, (a, b) -> a + b);
L'instance zipWith
est utile lorsque l'une des sources est plus longue tandis que l'autre est plus courte. À ce stade, il est plus pratique de zipper avec le plus court.
public Observable<R> withIndex(Observable<T> source, Func2<Integer, T, R> func) {
return source.zipWith(Observable.range(0, Integer.MAX_VALUE),
(t, idx) -> func(idx, t));
}