¿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
Trabajar con listas (List)
En esta lección guardarás varios valores en una colección y la recorrerás.
List("manzana", "naranja", "uva") crea una lista; no hace falta indicar el tipo porque Scala lo deduce de los elementos. Se recorre con for (f <- fruits).
El código de ejemplo guarda tres frutas y las imprime una a una.
El punto que hay que entender es que List en Scala es inmutable: no tiene un método add que la modifique. fruits :+ "pera" no cambia la lista original, sino que devuelve una lista nueva. Quien viene de Java o Python busca el add y no lo encuentra; no es una carencia, es la decisión de diseño central de la biblioteca de colecciones.
La ventaja aparece en cuanto hay concurrencia: una lista que nadie puede modificar se puede compartir entre hilos sin ningún tipo de bloqueo. Es una de las razones por las que Apache Spark, que reparte cálculos entre cientos de máquinas, está escrito en Scala.
🧪 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).
