Jak używać iteratorów rdzy

Jak używać iteratorów rdzy
Iteratory są betonową funkcją w rdzy. Są bardzo przydatne, gdy trzeba iterować nad sekwencją elementów. Na przykład, jeśli zapętlasz elementy w tablicy lub wektorze, używasz iteratora.

W tym artykule omówione iteratory w Rust, sposób ich wdrożenia i jak z nich korzystać.

Iterator rdzy

Iterator odnosi się do funkcji, która pozwala „przejść” sekwencję elementów. Jak wspomniano, może to być iterowanie nad każdym elementem w tablicy.

Iteratory w rdzy są leniwe. Oznacza to, że iterator nie musi wcześniej wiedzieć o liczbie elementów, przez które „przejdzie”. Określa następny element, jeśli żąda.

Cecha iteratora rdzy

Iteratory są zaimplementowane przez cechę iteratora zdefiniowaną w bibliotece standardowej Rust Standard. Oznacza to, że możemy użyć typu iteratora w pierwotnych typach lub niestandardowej kolekcji, dostarczając typ cechy i następną metodę.

Składnia cechy iteratora jest jak pokazana:

Iterator cechy pubowej
Wpisz pozycję;
fn następny (& mut self) -> Opcja;

Aby zaimplementować cechę iteratora w typach niestandardowych, musimy zdefiniować następną metodę, która zwraca jeden element na raz owinięty jako some () lub brak, gdy iteracja jest zakończona.

Rozważ następujący kod, który implementuje iterator dla niestandardowej struktury:

structCount
Current_value: i32,

Imp Count
fnnew () -> self
Samego siebie
Current_value: 0,



ImperatorFor Count
typeItem = i32;
fnNext (& Mutself) -> Opcja
ifelf.Aktualna wartość<5
samego siebie.current_value += 1;
powraca (ja.Aktualna wartość);

Nic


fnmain ()

Tutaj mamy strukturę, która ma wartość i32. Dalej jest konstruktor hrabia dla struktury. Wdrażamy również iterator struktury za pomocą następnej funkcji. To zwraca następny element w sekwencji.

Uwaga: Wartość zwracana jest opcją.

To pozwala nam nie zwrócić, jeśli nie ma następnego elementu.

Następnie możemy użyć tego iteratora jako:

Bo in Count :: new ()
println!"""", I);

Wniosek

W tym artykule omówiono charakter iteratora rdzy i jego znaczenie. Ponadto zagłębiliśmy się w cechę iteratora rdzy i metod wdrażania iteratora rdzy w niestandardowych typach. Mamy nadzieję, że ten artykuł jest pomocny. Sprawdź inne artykuły z Linux, aby uzyskać więcej wskazówek i informacji.