Menu
Coddy logo textTech

Iterar sobre un vector

Parte de la sección Logic & Flow del Journey de Rust de Coddy — lección 11 de 66.

Ahora que ya sabes cómo crear vectores y acceder a elementos individuales, aprendamos a procesar cada elemento de un vector de forma sistemática. El bucle for es perfecto para esta tarea, ya que te permite recorrer cada elemento en secuencia.

Aquí tienes 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 vector en sí. Cada iteración te da acceso a un elemento a la vez a través de la variable de bucle name.

El bucle for gestiona automáticamente la comprobación de límites por ti. A diferencia de la indexación manual, nunca intentarás accidentalmente acceder a un elemento que no existe. El bucle visitará exactamente tantos elementos como contenga el vector, lo que lo hace tanto seguro como conveniente.

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.

challenge icon

Desafío

Fácil

Escribe una función sum_all_elements que reciba 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 a sumar

Devuelve: La suma de todos los elementos en el vector (i32)

Hoja de referencia

Para iterar sobre un vector, usa un bucle for con una referencia al vector:

let names = vec!["Alice", "Bob", "Charlie"];

for name in &names {
    println!("Hello, {}!", name);
}

El & antes del nombre del vector crea una referencia, lo que te permite leer cada elemento sin tomar la propiedad (ownership). El bucle maneja automáticamente la comprobación de límites y visita exactamente tantos elementos como contiene el vector.

Este patrón funciona con cualquier tipo de vector:

let scores = vec![85, 92, 78, 90];

for score in &scores {
    println!("Score: {}", score);
}

Pruébalo tú mismo

fn sum_all_elements(numbers: Vec<i32>) -> i32 {
    // Escribe el código aquí
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Logic & Flow