compactMap은 한마디로 map Operator + nil 제거 효과를 가지는 Operator에요.

데이터 발행소스에서 Nil 인 데이터를 제거하고 Nil 이 아닌 데이터만 취합하여 map으로 발행하는 Operator에요.

기능

사용

["1", nil, "2", nil, "3", nil, "4", nil, "5"].publisher
  .compactMap({ $0 })
  .sink(receiveCompletion: { completion in
    print(completion)
  }, receiveValue: { value in
    print(value)
  })
  .store(in: &cancellables)
  
  
// 결과
1
2
3
4
5
finished