Vad är en Iterator?
En iterator är en datorspråkskonstruktion som gör att ett program kan läsa igenom en grupp datavärden eller informationsdelar på ett systematiskt sätt. Iteratorer möjliggör också individuell åtkomst till varje medlem av gruppen utan att det påverkar resten av gruppen. De används i många skript- och programmeringsspråk, inklusive C ++, Java, PHP och Perl. Deras implementering är oberoende av de objekt de skannar, så att de kan skanna alla typer av en grupp av objekt.
Att resa genom en grupp objekt med en iterator kallas vanligtvis iterating eller traversing. I de flesta datorspråk används iteratorer för att korsa grupper av relaterade objekt som kallas samlingar. Deras implementeringar är mycket flexibla och kan användas med samlingar av alla storlekar. De är i allmänhet säkrare än enkel elementåtkomst i en samling eftersom deras intervall är begränsat till elementen i samlingen. Även om det fortfarande är möjligt att komma åt ett index utanför gränserna, är det inte troligt om iteratorn används korrekt.
Iteratorer definieras, initialiseras och hanteras i minnet på olika sätt beroende på det datorspråk som de används i. Den allmänna syntaxen för dem är däremot liknande på de flesta språk. Det finns två olika typer av syntax som kan användas för iteratorer, definierade som uttryckliga eller implicita.
Explicit iterators involverar skapandet av ett iteratorobjekt, och det objektet används sedan i en korsningsslinga över elementen i en samling. Implicita iteratorer involverar en speciell typ av loopstruktur som skapar iteratorobjektet utan att det anges i förväg. Huruvida explicita eller implicita iteratorer används för någon speciell genomgång beror vanligtvis på programmerarens preferenser, eftersom skillnader i mängden kod eller prestanda mellan dem är försumbar. Den största skillnaden mellan explicita och implicita iteratorer är att explicita iteratorer visar skapandet av en iterator i källkod, medan implicita iteratorer inte visar detta.
Närhelst en samling av objekt finns kan en iterator användas för att skanna dem. Beroende på kapaciteten hos ett datorspråk kan iteratorer användas på matriser, kartor, listor och en mängd andra samlingstyper. Iteratorer är ett relativt allestädes närvarande i programmeringsspråk, och de vanligaste språken har någon typ av funktionalitet tillgänglig. Vissa datorspråk tillåter iteratorer med ytterligare funktioner, som begränsningar för antalet gånger ett element har åtkomst. Eftersom dessa funktioner inte är universella finns det ibland sätt på vilka de kan implementeras oberoende av iteratorerna själva.