Publishers.Contains
์ ๋ค๋ฆญ ๊ตฌ์กฐ์ฒด | ์์์ ํ๋ฅด๋ Publisher๋ก๋ถํฐ ํน์ ์์๋ฅผ ์ ๋ฌ๋ฐ์ ๋ ๋ถ๋ฆฌ์ธ ๊ฐ์ ๋ฐฐ์ถํ๋ Publisher
์ด๋์ ๋ผ์ด์ ๋ ๋ ๊ฐ์ ์ธ์๋ฅผ ๋ฐ๋๋ค.
upstream
: ์์์ ํ๋ฅด๋ Publisheroutput
: ์์ Publisher๋ก๋ถํฐ ์ค์บํ ์์
์์ Publisher์ Output ํ์
์ Equatable
ํ๋กํ ์ฝ์ ์ฑํํด์ผ ํ๋ค.
output
์ ๋๊ฒจ์ง ์์๊ฐ ์์ Publisher์ ์กด์ฌํ๋ฉด true๋ฅผ ๋ฐํํ๊ณ ๊ทธ๋ ์ง ์์ผ๋ฉด false๋ฅผ ๋ฐํํ๋ค.
contains
์คํผ๋ ์ดํฐ์ ๊ด๋ จ์ด ์๋ค.
// Publishers.Contains Publisher
Publishers
.Contains(upstream: Publishers.Sequence<[Int], Never>(sequence: [2, 4, 6]), output: 5)
.sink(receiveCompletion: { completion in
switch completion {
case .failure:
print("Combine Contains Error")
case .finished:
print("Combine Contains Finish")
}
}, receiveValue: { value in
print("Combine Contains : \(value)")
})
.store(in: &cancellables)
// contains Operator
Publishers.Sequence<[Int], Never>(sequence: [2, 4, 6])
.contains(5)
.sink(receiveCompletion: { completion in
switch completion {
case .failure:
print("Combine Contains Error")
case .finished:
print("Combine Contains Finish")
}
}, receiveValue: { value in
print("Combine Contains : \(value)")
})
.store(in: &cancellables)
// Combine Contains : false
// Combine Contains Finish
output
์ธ์์ ํน์ ๊ฐ์ ๋๊ฒจ ์์ Publisher๊ฐ ๋ฐํํ๋ ๊ฐ๊ณผ ์ผ์นํ๋ ๊ฒ์ด ์๋์ง ํ์ธํ์ฌ ๋ถ๋ฆฌ์ธ ๊ฐ์ ๋ฐํํ๋ค.
์์ Publisher๋ 2, 4, 6์ ๊ฐ์ ์ฐจ๋ก๋๋ก ๋ด๊ณ , 5์ ๊ฐ์ด ํฌํจ๋์ด ์๋์ง๋ฅผ ์กฐ์ฌํ๋ฏ๋ก ๊ฒฐ๊ณผ์ ์ผ๋ก false๋ฅผ ๋ฐํํ๊ณ ์ข ๋ฃํ๋ค.
RxSwift
ํด๋น ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํ ์คํผ๋ ์ดํฐ๋ฅผ ์ ๊ณตํ์ง ์๋๋ค.
ReactiveSwift
ํด๋น ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํ ์คํผ๋ ์ดํฐ๋ฅผ ์ ๊ณตํ์ง ์๋๋ค.
์ฐธ๊ณ
Last updated
Was this helpful?