Swift Combine: removeDuplicates(), puede hacer un mal uso si no lee esto.

Nov 30 2022
Aprendamos sobre removeDuplicates(). Como sugiere el nombre, elimina los duplicados.

Aprendamos sobre removeDuplicates(). Como sugiere el nombre, elimina los duplicados. Pero funciona de una manera un poco diferente de lo que cabría esperar.

Aplicando removeDuplicates() — esto no es lo que esperas

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

¡Pero el resultado es completamente opuesto a lo que esperabas!

Aún quedan valores duplicados...

appleSolo se elimina el segundo elemento del elemento duplicado ...

¿Porqué es eso?

En la programación reactiva, todo te llega como una secuencia de ese evento.

Si vienen dos eventos diferentes y si tienen el mismo valor exacto Apple en este caso, comenzará a eliminar esos duplicados.

Conclusión y Advertencia!!!

removeDuplicate()funciona solo cuando el mismo valor aparece consecutivamente.