Lección 15 / 20

El tipo Option (seguridad frente a null)

En esta lección representarás «puede que no haya valor» sin usar null.

get sobre un Map devuelve un Option: Some(valor) si la clave existe y None si no. Para llegar al contenido se usa pattern matching, que te obliga a tratar los dos casos.

El código de ejemplo busca una fruta que no está en el diccionario, así que entra por la rama None.

Compara esto con la lección anterior sobre Map: allí, prices("melón") con paréntesis habría lanzado una excepción y detenido el programa. Aquí, el mismo caso se convierte en un valor perfectamente normal que el compilador te obliga a manejar. Esa es toda la idea de Option: convertir la ausencia de dato en algo visible en el tipo, en lugar de una sorpresa en tiempo de ejecución.

Existe get sobre el propio Option para sacar el valor a la fuerza, pero falla si era None y devuelve el problema al punto de partida. En código real se usan match, getOrElse, o incluso map y filter directamente sobre el Option, tratándolo como una colección de cero o un elemento.

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

🧪 Este sitio no puede compilar ni ejecutar Scala 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)