반응형
[출처 - RxJava 프로그래밍 : 리액티브 프로그래밍 기초부터 안드로이드 까지 한번에]
본 글은 'RxJava 프로그래밍 : 리액티브 프로그래밍 기초부터 안드로이드 까지 한번에' 를 학습하면서 정리한 글입니다
마블다이어그램 참고 - http://reactivex.io/RxJava/javadoc/io/reactivex/Flowable.html#scan-io.reactivex.functions.BiFunction-
scan 함수는 reduce 함수화 비슷합니다. reduce 함수는 모든 데이터가 입력 후 그것을 종합하여 1개의 데이터만 발행한다면, scan 함수는 실행 할때마다 입력 값에 맞는 중간 결과 및 최종 결과를 발행합니다. 글 보다는 마블다이어 그램이 더 잘 이해될 것입니다.
test code를 확인 해보 겠습니다.
Java
import io.reactivex.Observable;
public class scan_test {
public static void main(String[] args){
String[] balls = {"1","2","3"};
Observable source = Observable.fromArray(balls).scan((ball1,ball2)->
ball2+"("+ball1+")");
source.subscribe(System.out::println);
}
}
kotlin
import io.reactivex.rxkotlin.toObservable
fun main(){
val balls = arrayOf("1","2","3")
val source = balls.toObservable().scan{ ball1,ball2 -> "$ball2($ball1)"}
source.subscribe{it->println(it)}
}
결과는
1
2(1)
3(2(1))
이렇게 나타납니다.
반응형
'2023년 이전 > ReativeX' 카테고리의 다른 글
RxJava, RxKotlin - CombineLatest 함수 (0) | 2020.01.17 |
---|---|
RxJava, RxKotlin - zip 함수 (0) | 2020.01.16 |
RxJava,RxKotlin - groupBy 함수 (0) | 2020.01.14 |
RxJava,RxKotlin - switchMap (0) | 2020.01.14 |
RxJava, RxKotlin - concatMap (0) | 2020.01.14 |