¿Ya dominas lo básico? Un curso estructurado de Rust es la vía rápida para dar el salto.
Ver cursos de Rust en UdemyEnlace de afiliado. No te cuesta nada extra.
- 01Preparar el entorno (lo que necesitas)
- 02Tu primera salida (println!)
- 03Variables y mutabilidad (let / mut)
- 04Anotaciones de tipo y tipos básicos
- 05Condicionales (la expresión if)
- 06Repetir (el bucle for)
- 07Escribir tu propia función
- 08Repetir (while y loop)
- 09La propiedad, lo básico
- 10Préstamos (referencias, &)
- 11Trabajar con vectores (Vec)
- 12Estructuras (struct)
- 13enum y la expresión match
- 14El tipo Option (seguridad frente a null)
- 15El tipo Result y el manejo de errores
- 16Traits (comportamiento compartido)
- 17Genéricos
- 18Closures (funciones anónimas)
- 19Trabajar con texto (String)
- 20[Proyecto] Construye un mini sistema de inventario
Trabajar con vectores (Vec)
En esta lección guardarás varios valores en una lista que puede crecer.
Un Vec es un array de tamaño variable. Se crea con Vec::new(), se le añaden elementos con push() y se consulta cuántos hay con len(). Para recorrerlo sin consumirlo se escribe for f in &fruits, con el & delante.
El código de ejemplo mete tres frutas en un vector, las imprime una a una y muestra el total.
Ese & del bucle es justo donde tropieza casi todo el mundo. Sin él, el for se convierte en el dueño del vector y este deja de existir al terminar, así que la línea siguiente con fruits.len() no compila. Cuando el compilador te diga «borrow of moved value», lo primero que hay que mirar es si falta un & en el bucle.
La otra diferencia importante frente a C: acceder con un índice fuera de rango no lee memoria ajena. Rust comprueba el límite y detiene el programa con un mensaje claro. Y si prefieres no detenerlo, get() te devuelve un Option, que es la lección que viene más adelante.
🧪 Este sitio no puede compilar ni ejecutar Rust directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).
