Rust

Iterators & Closures

Iterator trait, iterator adapters (map, filter, fold), closure syntax, move closures, Fn traits

22 questions d'entretien·
Confirmé
1

Quel trait doit implémenter un type pour pouvoir être utilisé dans une boucle for en Rust ?

Réponse

Le trait IntoIterator permet à un type d'être converti en itérateur. La boucle for appelle automatiquement into_iter() sur l'expression. Les types comme Vec, arrays et ranges implémentent ce trait par défaut, ce qui permet de les parcourir directement avec for.

2

Quelle méthode du trait Iterator doit obligatoirement être implémentée ?

Réponse

La méthode next() est la seule méthode requise du trait Iterator. Elle retourne Option<Self::Item>, soit Some(item) s'il reste des éléments, soit None quand l'itération est terminée. Toutes les autres méthodes comme map, filter ou collect ont des implémentations par défaut basées sur next().

3

Quelle est la différence entre iter(), iter_mut() et into_iter() sur un Vec<T> ?

Réponse

iter() retourne un itérateur sur des références immutables (&T), iter_mut() sur des références mutables (&mut T), et into_iter() consomme le Vec et retourne les éléments par valeur (T). Le choix dépend de si l'on veut lire, modifier ou prendre possession des éléments.

4

Qu'est-ce qu'un itérateur lazy en Rust et pourquoi est-ce important ?

5

Quelle est la syntaxe correcte pour définir une closure qui prend deux paramètres i32 et retourne leur somme ?

+19 questions d'entretien

Maîtrise Rust pour ton prochain entretien

Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.

Commencer gratuitement