Co to jest iterator?
Iterator to konstrukcja języka komputerowego, która umożliwia programowi systematyczne odczytywanie grupy wartości danych lub informacji. Iteratory pozwalają również na indywidualny dostęp do każdego członka grupy, bez wpływu na resztę grupy. Są one używane w wielu językach skryptowych i programistycznych, w tym C ++, Java, PHP i Perl. Ich implementacja jest niezależna od skanowanych obiektów, dzięki czemu mogą skanować dowolny typ grupy obiektów.
Podróżowanie przez grupę obiektów za pomocą iteratora jest zwykle nazywane iteracją lub przemierzaniem. W większości języków komputerowych iteratory są używane do przechodzenia przez grupy powiązanych obiektów zwanych kolekcjami. Ich implementacje są bardzo elastyczne i można je stosować z kolekcjami dowolnej wielkości. Zasadniczo są one bezpieczniejsze niż prosty dostęp do elementów w kolekcji, ponieważ ich zasięg jest ograniczony do elementów w kolekcji. Chociaż nadal można uzyskać dostęp do indeksu poza zakresem, nie jest prawdopodobne, aby iterator był używany poprawnie.
Iteratory są definiowane, inicjowane i obsługiwane w pamięci w różny sposób w zależności od języka komputera, w którym są używane. Natomiast ogólna ich składnia jest podobna w większości języków. Istnieją dwa różne typy składni, które mogą być używane w iteratorach, zdefiniowane jako jawne lub niejawne.
Jawne iteratory obejmują utworzenie obiektu iteratora, a następnie ten obiekt jest następnie wykorzystywany w pętli przechodzącej przez elementy kolekcji. Niejawne iteratory wymagają specjalnego typu struktury pętli, która tworzy obiekt iteratora bez wcześniejszego określenia. To, czy jawne lub niejawne iteratory są używane do konkretnego przejścia, zwykle zależy od preferencji programisty, ponieważ różnice w ilości kodu lub wydajności między nimi są nieistotne. Największa różnica między jawnymi i niejawnymi iteratorami polega na tym, że jawne iteratory pokazują tworzenie iteratora w kodzie źródłowym, podczas gdy niejawne iteratory tego nie pokazują.
Ilekroć dostępna jest kolekcja obiektów, do ich skanowania można użyć iteratora. W zależności od możliwości języka komputerowego iteratory mogą być używane w tablicach, mapach, listach i wielu innych typach kolekcji. Iteratory są stosunkowo wszechobecną cechą języków programowania, a większość popularnych języków ma pewien rodzaj dostępnych funkcji. Niektóre języki komputerowe pozwalają na iteratory z dodatkowymi funkcjami, takimi jak ograniczenia liczby dostępu do elementu. Ponieważ te funkcje nie są uniwersalne, czasami można je zaimplementować niezależnie od samych iteratorów.