¿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
for comprehensions (construir colecciones con yield)
En esta lección usarás for no para repetir, sino para construir una colección nueva.
Añadir yield cambia por completo lo que hace el for: en lugar de ejecutar el cuerpo y descartar el resultado, recoge cada valor producido y devuelve una colección con todos ellos. Además puedes filtrar dentro de la propia cabecera con un if.
El código de ejemplo recorre del 1 al 10, se queda solo con los pares y devuelve sus cuadrados.
La salida empieza por Vector, y eso confunde la primera vez. Es porque 1 to 10 produce un Range, y al aplicarle yield el resultado natural es un Vector, no una List. La regla general de las colecciones de Scala es que el tipo del resultado se parece al de la entrada; si necesitas otra cosa, .toList lo convierte.
Aunque aquí se vea con números, la for comprehension es en realidad azúcar sintáctico sobre map, flatMap y withFilter. Eso significa que el mismo for sirve para encadenar Option, Future o resultados de base de datos, y ahí es donde de verdad se aprecia: convierte código anidado y difícil de seguir en algo que se lee de arriba abajo.
🧪 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).
