- Utiliser for pour itérer sur des collections (c'est simple!)
- Comprendre les ranges (.., ..=)
- Itérer avec index et valeur
- Utiliser for avec iterators
Imaginez que vous parcourez 🔁 une liste:
- for = Parcourir chaque élément d'une collection
- Vous visitez chaque élément un par un
- C'est super pratique et super simple!
C'est exactement comme for fonctionne! C'est super intuitif!
┌─────────────────────────────────────────┐
│ 🔁 FOR = PARCOURIR LISTE 🔁 │
├─────────────────────────────────────────┤
│ │
│ Collection: [1, 2, 3, 4, 5] │
│ │
│ for élément in collection { │
│ ┌─────────────┐ │
│ │ Élément 1 │ → Traiter │
│ ├─────────────┤ │
│ │ Élément 2 │ → Traiter │
│ ├─────────────┤ │
│ │ Élément 3 │ → Traiter │
│ └─────────────┘ │
│ │
│ Parcourt tous les éléments! ✅ │
│ │
└─────────────────────────────────────────┘
Mnémonique: "Parcourir Liste" - for parcourt chaque élément d'une collection, comme parcourir une liste d'épicerie!
fn main() {
// Range exclusif (0 à 4)
for i in 0..5 {
println!("{}", i); // 0, 1, 2, 3, 4
}
// Range inclusif (0 à 5)
for i in 0..=5 {
println!("{}", i); // 0, 1, 2, 3, 4, 5
}
}fn main() {
let vec = vec![10, 20, 30, 40, 50];
// Itération directe (consomme le Vec)
for valeur in vec {
println!("{}", valeur);
}
// Itération avec référence (ne consomme pas)
let vec2 = vec![1, 2, 3];
for valeur in &vec2 {
println!("{}", valeur);
}
// vec2 est toujours valide
// Itération avec index
for (index, valeur) in vec2.iter().enumerate() {
println!("Index {}: {}", index, valeur);
}
}fn main() {
let s = String::from("hello");
// Itérer sur les caractères
for c in s.chars() {
println!("{}", c);
}
// Itérer sur les bytes
for b in s.bytes() {
println!("{}", b);
}
}