Menu
Coddy logo textTech

¿Qué es un 'Option'?

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

En programación, a menudo te encuentras con situaciones en las que un valor puede estar presente o no. Por ejemplo, al buscar un elemento en una lista, se puede encontrar el elemento o puede que no exista en absoluto. Los lenguajes de programación tradicionales suelen utilizar valores especiales como null o -1 para representar la "nada", pero este enfoque puede provocar errores y fallos.

Rust adopta un enfoque diferente con el enum Option<T>. Este es un tipo integrado que representa explícitamente la posibilidad de ausencia. En lugar de adivinar si un valor existe, Rust te obliga a manejar ambos casos de antemano.

El enum Option tiene exactamente dos variantes:

Some(value)  // Contiene un valor
None         // No contiene ningún valor

Cuando una función podría no devolver un valor, devuelve un Option. Si hay un valor para devolver, lo envuelve en Some. Si no hay ningún valor, devuelve None.

Esto hace que la posible ausencia sea explícita en el sistema de tipos, evitando que uses accidentalmente un valor que no existe.

Ya has visto Option en acción con el método .get() del hash map: devuelve Some(&value) cuando existe una clave, o None cuando no existe. Este patrón aparece en todo Rust, haciendo que tu código sea más seguro y predecible.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Hoja de referencia

El enum Option<T> representa un valor que podría o no estar presente, evitando errores al usar valores inexistentes.

Tiene dos variantes:

Some(value)  // Contiene un valor
None         // No contiene ningún valor

Las funciones que podrían no devolver un valor utilizan Option. Por ejemplo, el método .get() de un hash map devuelve Some(&value) cuando existe una clave, o None cuando no existe.

Pruébalo tú mismo

Esta lección no incluye un desafío de código.

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