Hvordan bruke rust iteratorer

Hvordan bruke rust iteratorer
Iteratorer er en betongfunksjon i rust. De er veldig nyttige når du trenger å iterere over en sekvens av elementer. For eksempel, hvis du slår over varene i en matrise eller vektor, bruker du en iterator.

Denne artikkelen vil diskutere iteratorer i rust, hvordan de implementeres, og hvordan du bruker dem.

Rust iterator

En iterator refererer til en funksjon som lar deg "gå gjennom" en sekvens av elementer. Som nevnt kan det være iterasjon av hvert element i en matrise.

Iteratorer i rust er lat. Dette betyr at iteratoren ikke trenger å vite på forhånd antall elementer den vil "gå gjennom". Det bestemmer neste element hvis det blir bedt om det.

Rust iteratortrekk

Iteratorer implementeres av Iterator -egenskapen definert i Rust Standard Library. Dette betyr at vi kan bruke iteratortypen på primitive typer eller en tilpasset samling ved å gi typen til egenskap og neste metode.

Syntaksen for iteratortrekk er som vist:

Pub Trait Iterator
type element;
fn neste (& mut selv) -> alternativ;

For å implementere iteratortrekket på tilpassede typer, må vi definere neste metode, som returnerer ett element om gangen pakket inn som noen () eller ingen når iterasjonen er fullført.

Tenk på følgende kode som implementerer en iterator for en tilpasset struktur:

structCount
Current_Value: I32,

Implet grev
fnnew () -> selv
Selv
Current_Value: 0,



ImpliteratorFor telling
typeItem = i32;
fnNext (& mutself) -> alternativ
hvis selv.nåværende verdi<5
selv-.current_value += 1;
Returnerende (selv.nåværende verdi);

Ingen


fnMain ()

Her har vi en struktur som har en verdi på i32. Neste er en tellekonstruktør for strukturen. Vi implementerer også en iterator for strukturen ved å bruke neste funksjon. Dette returnerer neste element i sekvensen.

Merk: Returverdien er alternativ.

Dette lar oss returnere ingen hvis det ikke er noen neste vare.

Deretter kan vi bruke denne iteratoren som:

For jeg i count :: new ()
Println!"""", Jeg);

Konklusjon

Denne artikkelen diskuterte arten av Rust Iterator og dens betydning. I tillegg gikk vi inn i Rust Iterator -egenskapen og metodene for å implementere Rust Iterator i tilpassede typer. Vi håper du fant denne artikkelen nyttig. Sjekk de andre Linux -hint -artiklene for flere tips og informasjon.