Swift Combine: removeDuplicates(), Anda dapat menyalahgunakannya sepenuhnya jika Anda tidak membaca ini.

Nov 30 2022
Mari belajar tentang removeDuplicates(). Seperti namanya, itu menghapus duplikat.

Mari belajar tentang removeDuplicates(). Seperti namanya, itu menghapus duplikat. Tapi itu bekerja dengan cara yang sedikit berbeda dari yang Anda harapkan.

Menerapkan removeDuplicates() — ini bukan yang Anda harapkan

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

Tetapi hasilnya benar-benar kebalikan dari yang Anda harapkan!

Nilai duplikat masih ada…

Hanya elemen kedua dari elemen duplikat appleyang dihapus...

Mengapa demikian?

Dalam pemrograman reaktif, semuanya datang kepada Anda sebagai rangkaian peristiwa itu.

Jika dua peristiwa berbeda akan datang dan jika nilainya sama persis dengan Apple dalam hal ini, itu akan mulai menghapus duplikat tersebut.

Kesimpulan dan Peringatan!!!

removeDuplicate()bekerja hanya ketika nilai yang sama muncul secara berurutan.