Che cos'è un iteratore?
Un iteratore è un costrutto di linguaggio informatico che consente a un programma di leggere attraverso un gruppo di valori di dati o informazioni in modo sistematico. Gli iteratori consentono anche l'accesso individuale a ciascun membro del gruppo, senza influire sul resto del gruppo. Sono utilizzati in molti linguaggi di programmazione e scripting, tra cui C ++, Java, PHP e Perl. La loro implementazione è indipendente dagli oggetti che scansionano, quindi possono scansionare qualsiasi tipo di gruppo di oggetti.
Viaggiare attraverso un gruppo di oggetti con un iteratore è solitamente chiamato iterare o attraversare. Nella maggior parte dei linguaggi informatici, gli iteratori vengono utilizzati per attraversare gruppi di oggetti correlati chiamati raccolte. Le loro implementazioni sono molto flessibili e possono essere utilizzate con raccolte di qualsiasi dimensione. In generale, sono più sicuri dell'accesso semplice agli elementi in una raccolta perché il loro intervallo è limitato agli elementi della raccolta. Sebbene sia ancora possibile accedere a un indice fuori limite, non è probabile che l'iteratore sia utilizzato correttamente.
Gli Iteratori vengono definiti, inizializzati e gestiti in memoria in modo diverso a seconda del linguaggio del computer in cui vengono utilizzati. La sintassi generale per loro, al contrario, è simile nella maggior parte delle lingue. Esistono due diversi tipi di sintassi che possono essere utilizzati per gli iteratori, definiti come espliciti o impliciti.
Gli iteratori espliciti implicano la creazione di un oggetto iteratore e quell'oggetto viene quindi utilizzato in un ciclo trasversale sugli elementi di una raccolta. Gli iteratori impliciti implicano un tipo speciale di struttura ad anello che crea l'oggetto iteratore senza che sia stato precedentemente specificato. Il fatto che gli iteratori espliciti o impliciti siano utilizzati o meno per un particolare attraversamento di solito dipende dalle preferenze del programmatore, poiché le differenze nella quantità di codice o nelle prestazioni tra loro sono trascurabili. La più grande differenza tra iteratori espliciti e impliciti è che gli iteratori espliciti mostrano la creazione di un iteratore nel codice sorgente, mentre gli iteratori impliciti non lo mostrano.
Ogni volta che è disponibile una raccolta di oggetti, è possibile utilizzare un iteratore per scansionarli. A seconda delle capacità di un linguaggio informatico, gli iteratori possono essere utilizzati su array, mappe, elenchi e una varietà di altri tipi di raccolta. Gli iteratori sono una caratteristica relativamente diffusa dei linguaggi di programmazione e i linguaggi più comuni hanno qualche tipo di funzionalità disponibile. Alcuni linguaggi informatici consentono agli iteratori con funzionalità aggiuntive, come le restrizioni sul numero di accessi a un elemento. Poiché queste funzionalità non sono universali, a volte ci sono modi in cui possono essere implementate indipendentemente dagli iteratori stessi.