Flutter

| Combine | 8. Sequencing Operators

flutter developer 2024. 5. 13. 13:55

Sequencing Operators는 데이터 스트림을 순차적으로 처리하고 변형하는 데 사용된다. 이들 연산자는 퍼블리셔에서 방출된 데이터 요소들의 순서를 유지하거나 수정하여 특정 작업을 수행할 때 중요한 역할을 한다. 여기서 당연히 질문이 들어올 수 있다. 

 

??: Transforming Operators 도 변형해서 처리하잖아?

 

두 연산자 카테고리의 중요한 차이점은  각 요소를 개별적으로 변형하여 다운스트림에 내려보내느냐 스트림의 전체 구조나 요소의 순서와 관련된 작업을 수행후 다운스트림에 내려보내느냐이다.  Transforming Operators값마다 확인후 변형시키고, Sequencing Operators스트림을 확인 후 변형시킨다. 즉 개별적인 값을 하나하나 변형시키냐 스트림을 한 번 훑어보고 변형시키느냐의 차이다.

 

Sequencing operatormin() 연산자부터 살펴보자. min연산자는 업스트림의 값들을 한 번 쫙 훑은 뒤에 가장 작은값을 다운스트림에 보낸다. 알아둘점은 min은 그리디하다는 것이다. 모든 스트림의 값들을 확인해야만 최소값을 방출할 수 있다.

 

 

max() 연산자는 이름부터 알 수 있듯이 가장 큰 값을 방출시키는 연산자이다. min()과 마찬가지로 스트림내 값들을 전부 확인해야하기 때문에 그리디하다.

 

 

count() 연산자는 스트림에서 방출된 요소의 총 수를 계산하여 그 결과를 다운스트림으로 전달한다. 마찬가지로 그리디한 연산자이다.

 

 

 

output(at:) 연산자는 해당하는 인덱스의 이벤트값을 다운스트림에 내려보낸다.


https://www.kodeco.com/5429795-reactive-programming-in-ios-with-combine/lessons/31

 

Reactive Programming in iOS with Combine, Episode 31: Sequencing Operators

Sequencing operators such as max, min, count and output can give you information on the sequence of emitted values as a whole.

www.kodeco.com