Avatar ·

¿Cuál es la diferencia entre iter() y into_iter() en Rust?

¡Hola, colegas! Empecé a estudiar Rust y me encontré con confusión al trabajar con iteradores. En la documentación veo que las colecciones (por ejemplo, Vec) tienen métodos iter() y into_iter(). A primera vista hacen lo mismo: permiten iterar sobre elementos. Pero noté que después de usar into_iter(), el vector original ya no está disponible, mientras que después de iter() sí lo está. ¿Por qué? Aquí hay un ejemplo de código que me confunde: ```rust fn main() { let numbers = vec![1, 2, 3]; // Uso iter() for num in numbers.iter() { println!("{}", num); } println!("Vector después de iter(): {:?}", numbers); // ¡Funciona! // Uso into_iter() let numbers2 = vec![4, 5, 6]; for num in numbers2.into_iter() { println!("{}", num); } // println!("Vector después de into_iter(): {:?}", numbers2); // ¡Error! numbers2 fue movido } ``` Entiendo que into_iter() de alguna manera "toma" la propiedad, mientras que iter() no. Pero ¿cuándo usar cada método? Y si