Iterar sobre un vector
Parte de la sección Lógica y Flujo del Journey de Rust de Coddy. Lección 11 de 66.
Ahora que sabes cómo crear vectores y acceder a elementos individuales, aprendamos a procesar sistemáticamente cada elemento de un vector. El bucle for es perfecto para esta tarea, ya que te permite visitar cada elemento en secuencia.
Esta es la sintaxis básica para iterar sobre un vector:
let names = vec!["Alice", "Bob", "Charlie"];
for name in &names {
println!("Hello, {}!", name);
}Observa el & antes de names: esto crea una referencia al vector, lo que te permite leer cada elemento sin tomar la propiedad del propio vector. Cada iteración te da acceso a un elemento a la vez mediante la variable de bucle name.
El bucle for gestiona automáticamente la comprobación de los límites por ti. A diferencia de la indexación manual, nunca intentarás accidentalmente acceder a un elemento que no existe. El bucle recorrerá exactamente tantos elementos como contenga el vector, lo que lo hace seguro y práctico.
Puedes usar este patrón con cualquier tipo de vector:
let scores = vec![85, 92, 78, 90];
for score in &scores {
println!("Score: {}", score);
}Este enfoque es la forma más común e idiomática de procesar todos los elementos de un vector cuando necesitas leer sus valores.
Desafío
FácilEscribe una función sum_all_elements que tome un vector numbers y devuelva la suma de todos sus elementos.
Usa un bucle for para iterar sobre el vector y acumular la suma de todos los elementos.
Parámetros:
numbers(Vec<i32>): El vector de enteros que se sumará
Devuelve: La suma de todos los elementos del vector (i32)
Pruébalo tú mismo
fn sum_all_elements(numbers: Vec<i32>) -> i32 {
// Escribe el código aquí
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Flujo de control avanzado
La expresión 'match'Coincidencia de múltiples valoresCoincidencia de rangosLa expresión 'if let'Bucles como expresionesResumen - Analizador de comandos simple4Agrupando datos con Structs
¿Qué es un Struct?Visión general de los StructsAcceso a los campos de un StructStructs mutablesStructs como parámetros de funcionesStructs de tuplaResumen - Crear un Struct de Libro7Manejo de errores con 'Result'
¿Qué es un 'Result'?Uso de 'match' con 'Result'is_ok() e is_err()Atajos: unwrap y expectEl operador de signo de interrogación '?'Parsing de Strings a númerosResumen - Función de división segura10Closures y funciones anónimas
¿Qué es un Closure?Definir un Closure simpleClosures con parámetrosCapturar el entornoResumen - Closure sumador simple2Introducción a los vectores
¿Qué es un vector?Crear un vectorAñadir elementos con pushAcceder a los elementos de un vectorIterar sobre un vectorIteración mutableEliminar elementosResumen: Rastreador de puntuación básico5Pares clave-valor con Hash Maps
¿Qué es un Hash Map?Crear un Hash MapInsertar pares clave-valorAcceder a los valoresIterar sobre un Hash MapActualizar un valorEliminar un parRepaso: Contador de palabras8Proyecto: Inventario simple de artículos
Configuración del proyectoAgregar un artículoVerificar el stockVender un artículoUniendo todo3Lista de tareas en la línea de comandos
Configuración del proyectoAñadir una tareaVer todas las tareasEliminar una tareaCódigo finalPractica por tu cuenta: Compilador de Rust online