2017-08-08 3 views

Antwort

5

Bequemlichkeit und Kontext.

Die statische zip ist nützlich, wenn Sie zwei Quellen bereits zusammengebaut haben und jetzt möchten Sie sie zusammen zippen. Die meiste Zeit sind sie selbst lange Ketten oder kommen von überall her.

Observable<T1> source1 = op().op().op().op().op(); 
Observable<T2> source2 = op().op().op().op().op(); 

Observable.zip(source1, source2, (a, b) -> a + b); 

Die Instanz zipWith ist nützlich, wenn eine der Quellen länger ist, während der andere kürzer ist. An diesem Punkt ist es bequemer, mit dem kürzeren zu zippen.

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)); 
} 
Verwandte Themen