Come usare iteratori ruggine

Come usare iteratori ruggine
Gli iteratori sono una caratteristica in cemento in ruggine. Sono molto utili quando è necessario iterare su una sequenza di elementi. Ad esempio, se si sta facendo il giro degli elementi in un array o un vettore, stai usando un iteratore.

Questo articolo discuterà gli iteratori in ruggine, come sono implementati e come usarli.

Rust iterator

Un iteratore si riferisce a una funzione che consente di "attraversare" una sequenza di elementi. Come accennato, potrebbe essere iterato su ogni elemento in un array.

Gli iteratori in ruggine sono pigri. Ciò significa che l'iteratore non ha bisogno di sapere in anticipo il numero di elementi che "attraverserà". Determina l'elemento successivo se richiesto.

Tratto di iteratore ruggine

Gli iteratori sono implementati dal tratto iteratore definito nella libreria standard Rust. Ciò significa che possiamo utilizzare il tipo di iteratore su tipi primitivi o una raccolta personalizzata fornendo il tipo a tratto e il metodo successivo.

La sintassi per il tratto iteratore è come mostrato:

pub trait iterator
Digitare Articolo;
FN Next (& Mut Self) -> Opzione;

Per implementare il tratto iteratore su tipi personalizzati, dobbiamo definire il metodo successivo, che restituisce un elemento alla volta avvolto come alcuni () o nessuno quando l'iterazione è completa.

Considera il seguente codice che implementa un iteratore per una struttura personalizzata:

StructCount
Current_Value: i32,

Impl Count
fnnew () -> self
Se stesso
Current_Value: 0,



impliteratorfor count
typeitem = i32;
fnNext (& mutself) -> opzione
iuSelf.valore corrente<5
se stesso.current_value += 1;
ritorna (sé.valore corrente);

Nessuno


fnMain ()

Qui, abbiamo una struttura che ha un valore di i32. Il prossimo è un costruttore di conteggio per la struttura. Implettiamo anche un iteratore per la struttura usando la funzione successiva. Questo restituisce l'elemento successivo nella sequenza.

Nota: il valore di ritorno è l'opzione.

Questo ci consente di restituire nessuno se non c'è alcun articolo.

Quindi, possiamo usare questo iteratore come:

Per i in count :: new ()
println!"""", io);

Conclusione

Questo articolo ha discusso della natura dell'iteratore ruggine e della sua importanza. Inoltre, abbiamo approfondito il tratto dell'iteratore Rust e i metodi per implementare l'iteratore Rust in tipi personalizzati. Speriamo che tu abbia trovato questo articolo utile. Controlla gli altri articoli di suggerimento Linux per ulteriori suggerimenti e informazioni.