Rullst AcademyRullst Academy/Lección
Rust II: datos, decisiones y confianza · Lección 06 / 12

Colecciones sin adivinar índices

Una estantería crece y disminuye. Consultar una posición inexistente debe ser una posibilidad prevista.

Rutas de aprendizaje12 min

Vamos a descubrir juntos

  1. 1

    Vec<T> guarda una secuencia de elementos del mismo tipo y puede crecer con push. El primer índice es 0; len() indica cuántos elementos hay, no el último índice.

  2. 2

    get(index) devuelve Option<&T>: Some con una referencia si existe la posición, None si falta. items[index] puede causar panic si no existe.

  3. 3

    Una función que solo lee una secuencia puede aceptar &[u16], una porción prestada. Puede consultar un Vec o un array sin copiar todos los elementos.

  4. 4

    Some(0) y None son distintos: existe un valor cero; la ausencia significa que no se encontró el valor. Evita sustituir silenciosamente por cero cuando importa la diferencia.

DE LA LECCIÓN A LA PRÁCTICA

Una guía para seguir a tu ritmo

Lee los pasos antes de usar la referencia de abajo. Los comandos se ejecutan en el terminal del sistema indicado; el registro ocurre en el sitio oficial. Los ejercicios de Rullst Academy son práctica y no verifican tu instalación ni cuenta externa.

fn inspect(items: &[u16], index: usize) { println!("{:?}", items.get(index)); }
fn main() {
    let mut items = vec![3];
    items.push(0);
    inspect(&items, 1);
}

Enlaces oficiales y siguiente paso

✦
TU MISIÓN

Usar Vec, porciones &[T], get y Option con Some/None.

Ahora te toca

Taller de descubrimientos

Lee, predice, investiga

Predice antes de mostrar. Este panel revela resultados preparados; no compila tu código. Los errores se resumen; el texto exacto puede variar con la versión del compilador.
Mini experimento

Simulación didáctica: compara tarjetas y comprueba tus predicciones. El navegador no compila Rust ni inicia un servidor.

fn inspect(items: &[u16], index: usize) { println!("{:?}", items.get(index)); }
fn main() {
    let mut items = vec![3];
    items.push(0);
    inspect(&items, 1);
}
Prepara tus respuestas y comprueba cuando estés listo.
Una pausa para entender

¿Por qué Some(0) es distinto de None?

Necesito una pista

Option representa presencia o ausencia, no solo un número.

Cargando tu camino…

Llévatelo contigo

Prueba los índices 0, 2 y 3 tras push(7). Después pasa una lista vacía. Escribe mensajes distintos para ausencia y cantidad cero.

RUST II · .rs

Tu espacio de práctica Rust II

Lee, predice y responde aquí. Para compilar realmente, extrae el ZIP en una carpeta nueva, abre la terminal junto a Cargo.toml y usa estos comandos. Debes tener instalados Rust y las herramientas de tu sistema.

cargo check --offline
cargo test --offline
cargo run --offline
Mis archivos y GitHub

El editor guarda un borrador en este navegador y permite descargar o publicar tu .rs. Para ejecutarlo en el proyecto, guarda el archivo editado como src/main.rs. El ZIP contiene la versión inicial; los resultados preparados no cambian con tus ediciones. La evaluación online no verifica ejecución local.

A tu ritmo

Mis archivos y GitHub

Cada lección puede convertirse en un registro propio: código, notas o un plan de práctica. Guardar un archivo en GitHub es opcional y no cambia tus XP.

Manual del alumno

El editor y las descargas se abren cuando esta lección esté disponible para tu cuenta. Revisa el acceso indicado abajo o vuelve al mapa de la ruta.

Comprobando tu acceso a esta lección…

Rullstpetbot

La IA puede equivocarse. Consulta el material de la lección.