Iterator w języku Go
Iterator to behawioralny wzorzec projektowy pozwalający sekwencyjnie przechodzić od elementu do elementu jakiegoś zbioru bez konieczności eksponowania jego formy.
Dzięki Iteratorowi klienci mogą przeglądać kolejne elementy różnych kolekcji w podobny sposób, za pośrednictwem jednego interfejsu.
Przykład koncepcyjny
Główną ideą kryjącą się za wzorcem Iterator jest ekstrakcja logiki przechodzenia przez kolejne elementy jakiejś kolekcji do osobnego obiektu zwanego iteratorem. Iterator udostępnia generyczną metodę służącą przechodzeniu przez elementy kolekcji obiektów niezależnie od ich typu.
collection.go: Kolekcja
userCollection.go: Konkretna kolekcja
iterator.go: Iterator
userIterator.go: Konkretny iterator
user.go: Kod klienta
main.go: Kod klienta
output.txt: Wynik działania
Na podstawie: Golang By Example