Swift Combine: removeDuplicates(), możesz go całkowicie niewłaściwie użyć, jeśli tego nie czytasz.
Nov 30 2022
Poznajmy metodę removeDuplicates(). Jak sama nazwa wskazuje, usuwa duplikaty.

Poznajmy metodę removeDuplicates(). Jak sama nazwa wskazuje, usuwa duplikaty. Ale działa to w trochę inny sposób, niż można by się spodziewać.
Zastosowanie metody removeDuplicates() — nie tego oczekujesz
let words = ["apple", "apple", "fruit", "apple", "mango", "watermelon", "apple"]
words.publisher
.removeDuplicates()
.sink {
print($0) // apple, fruit, apple, mango, watermelon, apple
}
Ale wynik jest całkowicie odwrotny od tego, czego się spodziewałeś!
Zduplikowane wartości nadal pozostają…
Tylko drugi element zduplikowanego elementu apple
jest usuwany...
Dlaczego?
W programowaniu reaktywnym wszystko przychodzi do ciebie jako sekwencja tego zdarzenia.
Jeśli nadejdą dwa różne wydarzenia i jeśli mają tę samą dokładną wartość, Apple w tym przypadku zacznie usuwać te duplikaty.
Wniosek i ostrzeżenie!!!
removeDuplicate()
działa tylko wtedy, gdy ta sama wartość pojawia się kolejno.