¿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
El tipo Option (seguridad frente a null)
En esta lección representarás «puede que no haya valor» sin usar null.
Rust no tiene null. En su lugar existe Option<T>, un enum con dos variantes: Some(valor) cuando hay algo y None cuando no. Para sacar el contenido hay que abrirlo, normalmente con un match.
El código de ejemplo busca una nota en una lista y devuelve Some si la encuentra o None si no. El match de main() trata los dos casos.
La consecuencia es enorme: es imposible olvidarse del caso vacío. En los lenguajes con null, cualquier variable puede ser nula y el fallo aparece en tiempo de ejecución; su inventor llegó a llamarlo su error de mil millones de dólares. En Rust, si una función devuelve Option, el compilador no te deja usar el valor sin decir antes qué pasa cuando no hay ninguno.
Existe unwrap(), que saca el valor y detiene el programa si era None. Va bien para prototipos y ejemplos, pero en código de verdad se prefieren match, if let o unwrap_or(valorPorDefecto), que no pueden reventar.
🧪 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).
