Des traits prédéfinis essentiels : les itérateurs Itérateur
Définitions
Un itérateur est un objet qui permet de parcourir tous les éléments d’une collection (une liste par exemple). Nous aurons l’occasion d’en utiliser souvent dans le chapitre ultérieur dédié aux collections, Autres collections en langage Rust.
À travers sa librairie standard, le langage C++ propose l’usage d’un itérateur implicite.
En langage C#, il existe une interface IEnumerator qu’il s’agit d’implémenter pour pouvoir obtenir un itérateur :
interface IEnumerator {
void Reset();
bool MoveNext();
object Current { get; }
}
On est plus ou moins dans la même situation qu’en C#, en langage Rust, avec l’existence d’un trait prédéfini nommé :
pub trait Iterator {
type Item;
fn next(&mut self) -> Option<Self::Item>;
} Iterator
Ce trait possède d’autres méthodes dont il fournit l’implémentation. Une seule méthode n’est pas implémentée, c’est à l’entité qui l’implémente de le faire : la méthode next, qui permet de passer à l’élément suivant. C’est un type Option...