Hva er en Iterator?
En iterator er en dataspråkkonstruksjon som lar et program lese gjennom en gruppe dataverdier eller informasjonsstykker på en systematisk måte. Iteratorer tillater også individuell tilgang til hvert medlem av gruppen, uten å påvirke resten av gruppen. De brukes i mange skriptspråk og programmeringsspråk, inkludert C ++, Java, PHP og Perl. Implementeringen av dem er uavhengig av objektene de skanner, slik at de kan skanne alle typer objekter.
Å reise gjennom en gruppe objekter med en iterator kalles vanligvis iterating eller traversing. I de fleste dataspråk blir iteratorer brukt til å krysse grupper av relaterte objekter som kalles samlinger. Implementeringene deres er veldig fleksible og kan brukes med samlinger i alle størrelser. De er generelt sikrere enn enkel elementtilgang i en samling fordi utvalget deres er begrenset til elementene i samlingen. Selv om det fremdeles er mulig å få tilgang til en overskridelsesindeks, er det ikke sannsynlig at iteratoren brukes riktig.
Iteratorer er definert, initialisert og håndtert i minnet på en annen måte, avhengig av dataspråket de brukes i. Den generelle syntaks for dem er derimot lik på de fleste språk. Det er to forskjellige typer syntaks som kan brukes for iteratorer, definert som eksplisitte eller implisitte.
Eksplisitte iteratorer involverer opprettelse av et iteratorobjekt, og det objektet blir deretter brukt i en krysssløyfe over elementene i en samling. Implisitte iteratorer involverer en spesiell type løkkestruktur som oppretter iteratorobjektet uten at det er spesifisert på forhånd. Hvorvidt eksplisitte eller implisitte iteratorer brukes til noen spesiell gjennomgang, avhenger vanligvis av programmererens preferanser, da forskjeller i mengden kode eller ytelse dem imellom er ubetydelige. Den største forskjellen mellom eksplisitte og implisitte iteratorer er at eksplisitte iteratorer viser opprettelsen av en iterator i kildekoden, mens implisitte iteratorer ikke viser dette.
Hver gang en samling av objekter er tilgjengelig, kan en iterator brukes til å skanne dem. Avhengig av mulighetene til et dataspråk, kan iteratorer brukes på matriser, kart, lister og en rekke andre samlingstyper. Iteratorer er en relativt allestedsnær funksjon ved programmeringsspråk, og de vanligste språkene har en eller annen type funksjonalitet tilgjengelig. Noen dataspråk tillater iteratorer med tilleggsfunksjoner, for eksempel begrensninger i antall ganger du får tilgang til et element. Siden disse funksjonene ikke er universelle, er det noen ganger måter de kan implementeres uavhengig av iteratorene selv.