Avatar ·

Was ist der Unterschied zwischen iter() und into_iter() in Rust?

Hallo! Ich habe gerade angefangen, Rust zu lernen, und versuche, Iteratoren zu verstehen. Ich habe mehrere Artikel gelesen, kann aber den Unterschied zwischen den Methoden `iter()` und `into_iter()` nicht verstehen.\n\nIch habe diesen Code geschrieben:\n\n```rust\nlet numbers = vec![1, 2, 3, 4, 5];\n\n// Versuch 1: iter()\nfor num in numbers.iter() {\n println!("{}", num);\n}\nprintln!("Nach iter(): {:?}", numbers); // Funktioniert\n\n// Versuch 2: into_iter()\nfor num in numbers.into_iter() {\n println!("{}", num);\n}\nprintln!("Nach into_iter(): {:?}", numbers); // Fehler!\n```\n\nDer erste Teil des Codes funktioniert einwandfrei, ich kann `numbers` nach der Schleife verwenden. Aber der zweite Teil gibt einen Kompilierungsfehler aus: `value used here after move`.\n\nIch habe gelesen, dass `into_iter()` die Collection konsumiert, verstehe aber nicht, was das in der Praxis bedeutet. Warum kann ich nicht