Wat is een Iterator?
Een iterator is een computertaalconstructie waarmee een programma op systematische wijze een groep gegevenswaarden of stukjes informatie kan doorlezen. Iterators bieden ook individuele toegang tot elk lid van de groep, zonder de rest van de groep te beïnvloeden. Ze worden gebruikt in vele script- en programmeertalen, waaronder C ++, Java, PHP en Perl. Hun implementatie is onafhankelijk van de objecten die ze scannen, zodat ze elk type van een groep objecten kunnen scannen.
Reizen door een groep objecten met een iterator wordt meestal itereren of doorkruisen genoemd. In de meeste computertalen worden iterators gebruikt om groepen verwante objecten, collecties genaamd, te doorkruisen. Hun implementaties zijn zeer flexibel en kunnen worden gebruikt met collecties van elke grootte. Ze zijn over het algemeen veiliger dan eenvoudige toegang tot elementen in een verzameling omdat hun bereik beperkt is tot de elementen in de verzameling. Hoewel het nog steeds mogelijk is om toegang te krijgen tot een out-of-bounds-index, is het niet waarschijnlijk dat de iterator correct wordt gebruikt.
Iterators worden anders gedefinieerd, geïnitialiseerd en in het geheugen verwerkt, afhankelijk van de computertaal waarin ze worden gebruikt. De algemene syntaxis voor hen is daarentegen vergelijkbaar in de meeste talen. Er zijn twee verschillende soorten syntaxis die kunnen worden gebruikt voor iterators, gedefinieerd als expliciet of impliciet.
Expliciete iterators houden de creatie van een iteratorobject in, en dat object wordt vervolgens in een transversale lus over de elementen van een verzameling gebruikt. Impliciete iterators hebben een speciaal type lusstructuur die het iterator-object maakt zonder dat het vooraf is opgegeven. Of expliciete of impliciete iterators al dan niet worden gebruikt voor een bepaalde doorgang hangt meestal af van de voorkeur van de programmeur, omdat verschillen in de hoeveelheid code of prestaties daartussen verwaarloosbaar zijn. Het grootste verschil tussen expliciete en impliciete iterators is dat expliciete iterators de creatie van een iterator in broncode laten zien, terwijl impliciete iterators dit niet tonen.
Wanneer een verzameling objecten beschikbaar is, kan een iterator worden gebruikt om ze te scannen. Afhankelijk van de mogelijkheden van een computertaal, kunnen iterators worden gebruikt op arrays, kaarten, lijsten en een verscheidenheid aan andere soorten collecties. Iterators zijn een relatief alomtegenwoordig kenmerk van programmeertalen, en de meest voorkomende talen hebben een soort functionaliteit beschikbaar. Sommige computertalen staan iterators toe met extra functies, zoals beperkingen op het aantal keren dat een element wordt gebruikt. Omdat deze functies niet universeel zijn, zijn er soms manieren waarop ze onafhankelijk van de iterators zelf kunnen worden geïmplementeerd.