Menu
Coddy logo textTech

Acceder a los elementos de un vector

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

Una vez que tengas un vector con elementos, necesitarás acceder a los valores individuales. Rust proporciona dos enfoques diferentes para obtener elementos de un vector, cada uno con sus propias ventajas y desventajas entre conveniencia y seguridad.

El primer método utiliza la sintaxis de índice con corchetes, de manera similar a los arrays:

let numbers = vec![10, 20, 30, 40];
let first = numbers[0]; // obtiene 10
let third = numbers[2]; // obtiene 30

Si bien esta sintaxis es familiar y concisa, tiene un riesgo significativo: si intentas acceder a un índice que no existe, tu programa entrará en pánico y fallará:

let numbers = vec![10, 20, 30];
let invalid = numbers[5]; // ¡Esto entrará en pánico!

El segundo método utiliza el método .get(), el cual proporciona acceso seguro:

let numbers = vec![10, 20, 30, 40];
let first = numbers.get(0); // devuelve Some(10)
let invalid = numbers.get(5); // devuelve None

El método .get() devuelve un Option, ya sea Some(value) si el índice existe, o None si no existe. Esto te obliga a manejar la posibilidad de que el elemento no exista, evitando fallos y haciendo que tu código sea más robusto.

challenge icon

Desafío

Fácil

Escribe una función get_element_at que reciba un vector numbers y un índice idx, y devuelva el elemento en ese índice utilizando un acceso seguro.

Usa el método .get() para acceder de forma segura al elemento. Si el índice existe, devuelve el valor. Si el índice no existe, devuelve -1 como valor predeterminado.

Parámetros:

  • numbers (Vec<i32>): El vector al que se va a acceder
  • idx (i32): El índice a recuperar

Devuelve: El elemento en el índice dado, o -1 si el índice no existe (i32)

Hoja de referencia

Rust proporciona dos métodos para acceder a los elementos de un vector:

Sintaxis de índice con corchetes:

let numbers = vec![10, 20, 30, 40];
let first = numbers[0]; // gets 10
let third = numbers[2]; // gets 30

Este método provocará un pánico (panic) si el índice no existe:

let invalid = numbers[5]; // This will panic!

El método .get() para un acceso seguro:

let numbers = vec![10, 20, 30, 40];
let first = numbers.get(0); // returns Some(10)
let invalid = numbers.get(5); // returns None

El método .get() devuelve un tipo Option: ya sea Some(value) si el índice existe, o None si no existe. Esto evita cierres inesperados y requiere un manejo explícito de los elementos ausentes.

Pruébalo tú mismo

fn get_element_at(numbers: Vec<i32>, idx: 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