Wie man Rost -Iteratoren benutzt

Wie man Rost -Iteratoren benutzt
Iteratoren sind ein konkretes Merkmal in Rost. Sie sind sehr nützlich, wenn Sie über eine Abfolge von Elementen iterieren müssen. Wenn Sie beispielsweise die Elemente in einem Array oder Vektor überschreiten, verwenden Sie einen Iterator.

In diesem Artikel werden Iteratoren in Rust, ihre Implementierung und die Verwendung von ihnen erörtert.

Rost -Iterator

Ein Iterator bezieht sich auf eine Funktion, mit der Sie eine Abfolge von Elementen durch „gehen“ können. Wie bereits erwähnt, könnte es über jedes Element in einem Array iteriert werden.

Iteratoren in Rost sind faul. Dies bedeutet, dass der Iterator die Anzahl der Elemente, die er „durchgehen“, nicht vorher kennen muss. Es bestimmt das nächste Element, wenn er angefordert wird.

Rost -Iterator -Merkmal

Iteratoren werden durch das in der Rust Standard Library definierte Iterator -Merkmal implementiert. Dies bedeutet.

Die Syntax für das Iteratormerkmal ist wie gezeigt:

Pub Trait Iterator
Geben Sie Artikel ein;
FN Weiter (& mut selbst) -> Option;

Um das Iterator -Merkmal für benutzerdefinierte Typen zu implementieren, müssen wir die nächste Methode definieren, die ein Element zu einem Zeitpunkt zurückgibt, der als einige () oder keine, wenn die Iteration abgeschlossen ist.

Betrachten Sie den folgenden Code, der einen Iterator für eine benutzerdefinierte Struktur implementiert:

StructCount
Current_Value: i32,

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



Impliterator für Count
typeItem = i32;
fnnext (& mutself) -> Option
wenn ich.aktueller Wert<5
selbst.Current_Value += 1;
Rückkehr (Selbst.aktueller Wert);

Keiner


fnmain ()

Hier haben wir eine Struktur, die einen Wert von i32 hat. Als nächstes kommt ein Count -Konstruktor für die Struktur. Wir implementieren auch einen Iterator für die Struktur mithilfe der nächsten Funktion. Dies gibt das nächste Element in der Sequenz zurück.

Hinweis: Der Rückgabewert ist die Option.

Auf diese Weise können wir keine zurückgeben, wenn es keinen nächsten Artikel gibt.

Dann können wir diesen Iterator als:

Denn ich in count :: new ()
println!"""", ich);

Abschluss

In diesem Artikel wurde die Art des Rost -Iterators und seine Bedeutung erörtert. Darüber hinaus haben wir uns mit dem Rost -Iterator -Merkmal und den Methoden zur Implementierung des Rost -Iterators in benutzerdefinierten Typen befasst. Wir hoffen, Sie haben diesen Artikel hilfreich gefunden. Weitere Tipps und Informationen finden Sie in den anderen Linux -Hinweisartikeln.