Cet article discutera des itérateurs de la rouille, de la façon dont ils sont mis en œuvre et de la façon de les utiliser.
Itérateur de rouille
Un itérateur fait référence à une fonctionnalité qui vous permet de «parcourir» une séquence d'éléments. Comme mentionné, il pourrait être itérant sur chaque élément d'un tableau.
Les itérateurs de rouille sont paresseux. Cela signifie que l'itérateur n'a pas besoin de connaître au préalable le nombre d'éléments qu'il «traversera». Il détermine l'élément suivant si demandé.
Trait d'itérateur de rouille
Les itérateurs sont mis en œuvre par le trait d'itérateur défini dans la bibliothèque Standard Rust. Cela signifie que nous pouvons utiliser le type d'itérateur sur des types primitifs ou une collection personnalisée en fournissant le type à trait et la méthode suivante.
La syntaxe du trait d'itérateur est comme indiqué:
iterator de trait de pubPour implémenter le trait d'itérateur sur des types personnalisés, nous devons définir la méthode suivante, qui renvoie un élément à la fois enveloppé en tant que quelque () ou aucune lorsque l'itération est terminée.
Considérez le code suivant qui implémente un itérateur pour une structure personnalisée:
StrucTCountIci, nous avons une structure qui a une valeur de i32. Ensuite, un constructeur de comte pour la structure. Nous implémentons également un itérateur pour la structure en utilisant la fonction suivante. Cela renvoie l'élément suivant de la séquence.
Remarque: la valeur de retour est l'option.
Cela nous permet de ne pas en retourner s'il n'y a pas d'élément suivant.
Ensuite, nous pouvons utiliser cet itérateur comme:
Pour i dans le compte :: new ()Conclusion
Cet article a discuté de la nature de l'itérateur de rouille et de son importance. De plus, nous nous sommes plongés dans le trait de Rust Iterator et les méthodes pour implémenter l'itérateur de rouille en types personnalisés. Nous espérons que vous avez trouvé cet article utile. Vérifiez les autres articles sur les indices Linux pour plus de conseils et d'informations.