Filtering ์นดํ ๊ณ ๋ฆฌ ์ฐ์ฐ์๋ค์ Publisher๋ก๋ถํฐ ๊ฐ์ ๋ฐ์์ ์ค์ ํด๋์ ์กฐ๊ฑด์ ๋ง๋ ๋ ์๋ค๋ง ๋ค์ด์คํธ๋ฆผ์ผ๋ก ๋ด๋ ค๋ณด๋ด๋ ์ฐ์ฐ์์ด๋ค. ์์ transforming ์ฐ์ฐ์๋ค๊ณผ ๋น๊ตํ์ ๋ ์ ์คํธ๋ฆผ์ผ๋ก๋ถํฐ ๋ด๋ ค์ค๋ ๊ฐ์ ๋ฐ๊พธ๋ ๊ฒ์ด ์๋ ๊ฑธ๋ฌ๋ด๋ ์ญํ ์ ์ํํ๋ค.
๋จผ์ Filter() ์ฐ์ฐ์๊ฐ ์๋ค. ๊ฐ์ฅ ๋จ์ํ ํํฐ ์ฐ์ฐ์๋ก ์ํ๋ ์กฐ๊ฑด์ ๋ฐ๋ผ ํํฐ๋งํด์ ๋ค์ด์คํธ๋ฆผ์ ๋ด๋ ค๋ณด๋ธ๋ค.
removeDuplicate() ์ฐ์ฐ์๋ ์ด๋ฆ ๊ทธ๋๋ก ์ค๋ณต๋ ๊ฐ๋ค์ ์ ๊ฑฐํด์ฃผ๊ณ ๋ค์ด์คํธ๋ฆผ์ ๋ด๋ ค๋ณด๋ธ๋ค.
compactMap ์ nil์ ํํฐ๋งํ ๋ฐธ๋ฅ๊ฐ์ ๋ค์ด์คํธ๋ฆผ์ ์ ๋ฌํ๋ค ์์ฝ๋์์์์ Int๊ฐ์ผ๋ก ๋ณํ์ด ๋์ง ์์ ๋ฐธ๋ฅ๋ ํํฐ๋งํ๊ณ ๋ณํ๋ ๊ฐ๋ง ๋ค์ด์คํธ๋ฆผ์ ๋ด๋ ค๋ณด๋ด๋ ๊ฒ์ ์ ์ ์๋ค.
ignoreOutput() ์ฐ์ฐ์๋ ๊ฐ์ ๋ฌด์ํ๊ณ ์์ ์ ์๋ฃ๋ ์คํจ ์ํ๋ง์ ๋ค๋ฃจ๊ณ ์ ํ ๋ ์ฌ์ฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์ ์ฅํ๊ณ ๋๋ฉด ๊ฐ์ ์ฌ๋ถ์ ์๊ด์์ด ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์ ์ฅ์ด ์ฑ๊ณตํ๋ค๋ผ๋ ์ฌ์ค์ ํ์ธํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ ์ ์๋ค.
last ์ฐ์ฐ์๋ ์ด๋ฆ ๊ทธ๋๋ก ๋ง์ง๋ง ์ด๋ฒคํธ๋ฅผ ๊ฐ์ ธ์จ๋ค. ๋ํ last ์ฐ์ฐ์๋ "greedy" ํ๋ค. ์ด์ ๋ ์คํธ๋ฆผ์ ๋ง์ง๋ง ๊ฐ์ ๊ฒฐ์ ํ๊ธฐ ์ํด upstream publisher๋ก๋ถํฐ ๋ชจ๋ ๊ฐ์ ๋ฐ์์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค. ์์ ์ ์ํํ๊ธฐ ์ํด ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ดํด๋ณด๊ณ , ๊ทธ ์ค์์ ๊ฐ์ฅ ๋ง์ง๋ง์ ๋์จ ๊ฐ์ ์ ํํ๊ฒ ๋๋ค. first ์ฐ์ฐ์์ ๋์ผํ๊ฒ ๋ง์ง๋ง ๊ฐ์ ๋ฐ์ผ๋ฉด ๋ฐ๋ก completion ์ข ๋ฃ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํจ๋ค.
prefix ์ฐ์ฐ์๋ ์ ์คํธ๋ฆผ ์์๋ถ๋ถ์์ ์ํ๋ ๋ญํฑ์ด๋งํผ ์ด๋ฒคํธ๊ฐ์ ๋ฐ๋๋ค. first์ ๊ฐ์ด lazy์ฐ์ฐ์๋ก์จ ์ํ๋ ๊ฐ๋ง ๊ฐ์ ธ์ค๋ฉด ๋ฐ๋ก ์ข ๋ฃ์ด๋ฒคํธ๋ฅผ ๋์ง๊ณ ๋์ด์์ ๊ฐ์ ์๊ฐ์ ธ์์ ํจ์จ์ ์ผ๋ก ๋ฆฌ์์ค๋ฅผ ์ฒ๋ฆฌํ๋ค.
drop ์ฐ์ฐ์๋ ์ค์ ํด๋์ ์กฐ๊ฑด์ ๋ง๋ ๊ฐ์ด ์ฌ ๋๊น์ง ์์ ์ ์คํธ๋ฆผ์์ ๋ด๋ ค์จ ๊ฐ๋ค์ ๋ชจ๋ ๋๋์ํจ๋ค.
https://www.kodeco.com/5429795-reactive-programming-in-ios-with-combine/lessons/11
'๐ฆ Flutter' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Combine | 5. Combining Operators (0) | 2024.05.11 |
---|---|
Flutter Widget์ ์๋์๋ฆฌ (0) | 2024.05.10 |
UIView ์ Drawing Cycle (0) | 2024.05.08 |
| Combine | 3. Transforming Operators (0) | 2024.05.08 |
| Combine | 2. Operators and Subjects (0) | 2024.05.07 |