Avatar ·

Comment itérer sur Vec<T> en obtenant l'index de l'élément en Rust ?

Bonjour à tous ! J'ai récemment commencé à apprendre Rust et j'ai rencontré un problème pour parcourir un vecteur avec accès à l'index de l'élément. Dans d'autres langages, comme Python ou JavaScript, j'ai l'habitude d'écrire quelque chose comme `for i, value in enumerate(list)` ou `for (let i = 0; i < arr.length; i++)`. En Rust, je sais qu'on peut simplement utiliser `for value in vec`, mais alors je perds l'index. J'ai besoin d'afficher tous les éléments du vecteur avec leur position, par exemple : ```rust let items = vec!["pomme", "banane", "cerise"]; // Je veux obtenir : "0: pomme", "1: banane", "2: cerise" ``` J'ai essayé de faire ceci : ```rust for i in 0..items.len() { println!("{}: {}", i, items[i]); } ``` Cela fonctionne, mais j'ai entendu dire que l'accès par index via les crochets peut provoquer une panique si l'index est hors limites. Bien qu'ici je contrôle la longueur, cela ne semble pas très idiomatique pour Rust. De plus, si le vecteur est modifié pendant l'itération, des problèmes peuvent survenir. Comment itérer correctement et en toute sécurité ?