Swift Combine: removeDuplicates(), вы можете совершенно неправильно использовать его, если не читаете это.

Nov 30 2022
Давайте узнаем о removeDuplicates(). Как следует из названия, он удаляет дубликаты.

Давайте узнаем о removeDuplicates(). Как следует из названия, он удаляет дубликаты. Но это работает немного иначе, чем вы могли бы ожидать.

Применение removeDuplicates() — это не то, что вы ожидаете

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

Но результат полностью противоположен тому, что вы ожидали!

Повторяющиеся значения все еще остаются…

Удаляется только второй элемент повторяющегося элемента apple...

Почему это?

В реактивном программировании все приходит к вам как последовательность этого события.

Если приближаются два разных события и если они имеют одинаковое точное значение, Apple в этом случае начнет удалять эти дубликаты.

Заключение и предупреждение!!!

removeDuplicate()работает только тогда, когда одно и то же значение появляется последовательно.