Lección 14 / 20

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.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 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).

Espacio publicitario (banner)
Espacio publicitario (en el artículo)