¿Ya dominas lo básico? Un curso estructurado de Scala es la vía rápida para dar el salto.
Ver cursos de Scala en UdemyEnlace de afiliado. No te cuesta nada extra.
- 01Preparar el entorno (lo que necesitas)
- 02Tu primera salida (println)
- 03Variables (val y var)
- 04Anotaciones de tipo y tipos básicos
- 05Condicionales (la expresión if)
- 06Repetir (la expresión for)
- 07Escribir tu propia función
- 08Repetir (el bucle while)
- 09Trabajar con listas (List)
- 10Trabajar con diccionarios (Map)
- 11Clases (orientación a objetos)
- 12case class (clases para datos)
- 13Herencia y traits
- 14Pattern matching (la expresión match)
- 15El tipo Option (seguridad frente a null)
- 16Funciones de orden superior: map y filter
- 17object (objetos únicos)
- 18Textos e interpolación de cadenas
- 19for comprehensions (construir colecciones con yield)
- 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.
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.
🧪 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).
