Ce este un Iterator?

Un iterator este un limbaj de calculator care permite unui program să citească un grup de valori de date sau informații într-un mod sistematic. Iteratoarele permit, de asemenea, accesul individual la fiecare membru al grupului, fără a afecta restul grupului. Sunt folosite în multe limbaje de scriptare și programare, inclusiv C++, Java, PHP și Perl. Implementarea lor este independentă de obiectele pe care le scanează, astfel încât ei pot scana orice tip de grup de obiecte.

Călătoria printr-un grup de obiecte cu un iterator se numește de obicei iterare sau traversare. În majoritatea limbajelor de calculator, iteratoarele sunt folosite pentru a parcurge grupuri de obiecte înrudite numite colecții. Implementările lor sunt foarte flexibile și pot fi utilizate cu colecții de orice dimensiune. Ele sunt, în general, mai sigure decât accesul simplu la elemente dintr-o colecție, deoarece gama lor este limitată la elementele din colecție. Deși este încă posibil să accesați un index în afara limitelor, nu este probabil dacă iteratorul este utilizat corect.

Iteratorii sunt definiți, inițializați și gestionați în memorie în mod diferit, în funcție de limbajul computerului în care sunt utilizați. Sintaxa generală pentru ei, prin contrast, este similară în majoritatea limbilor. Există două tipuri diferite de sintaxă care pot fi utilizate pentru iteratoare, definite ca explicite sau implicite.

Iteratoarele explicite implică crearea unui obiect iterator, iar acel obiect este apoi utilizat într-o buclă de traversare peste elementele unei colecții. Iteratoarele implicite implică un tip special de structură de buclă care creează obiectul iterator fără ca acesta să fie specificat în prealabil. Dacă iteratorii expliciți sau impliciti sunt sau nu utilizați pentru o anumită parcurgere depinde de obicei de preferința programatorului, deoarece diferențele în cantitatea de cod sau performanța dintre ele sunt neglijabile. Cea mai mare diferență între iteratorii expliciți și impliciti este că iteratorii explici arată crearea unui iterator în codul sursă, în timp ce iteratorii impliciti nu arată acest lucru.

Ori de câte ori o colecție de obiecte este disponibilă, un iterator poate fi folosit pentru a le scana. În funcție de capacitățile unui limbaj informatic, iteratoarele pot fi utilizate pe matrice, hărți, liste și o varietate de alte tipuri de colecții. Iteratoarele sunt o caracteristică relativ omniprezentă a limbajelor de programare, iar majoritatea limbajelor comune au un anumit tip de funcționalitate disponibilă. Unele limbaje de calculator permit iteratoare cu caracteristici suplimentare, cum ar fi restricții privind numărul de accesări ale unui element. Deoarece aceste caracteristici nu sunt universale, există uneori moduri prin care pot fi implementate independent de iteratorii înșiși.