Swift Combine: removeDuplicates (), você pode usá-lo totalmente mal se não ler isso.

Nov 30 2022
Vamos aprender sobre removeDuplicates(). Como o nome sugere, ele remove as duplicatas.

Vamos aprender sobre removeDuplicates(). Como o nome sugere, ele remove as duplicatas. Mas funciona de uma maneira um pouco diferente do que você pode esperar.

Aplicando removeDuplicates() — isso não é o que você espera

let words = ["apple", "apple", "fruit", "apple", "mango", "watermelon", "apple"]
words.publisher
		.removeDuplicates()
		.sink {
		print($0) // apple, fruit, apple, mango, watermelon, apple 
}

Mas o resultado é completamente o oposto do que você esperava!

Valores duplicados ainda permanecem...

Apenas o segundo elemento do elemento duplicado appleé removido...

Por que é que?

Na programação reativa, tudo chega até você como uma sequência desse evento.

Se dois eventos diferentes estiverem chegando e se eles tiverem o mesmo valor exato da Apple neste caso, ele começará a remover essas duplicatas.

Conclusão e Aviso!!!

removeDuplicate()funciona apenas quando o mesmo valor aparece consecutivamente.