Lección 20 / 20

[Proyecto] Construye un mini sistema de inventario

En esta lección juntarás todo lo anterior en un programa pequeño pero completo.

Aparecen a la vez varias cosas que ya conoces: una case class para los datos de cada artículo, una función que devuelve el estado, pattern matching con una condición de guarda, una lista inmutable y un for con interpolación para sacar el informe.

El código de ejemplo registra tres artículos y muestra el estado de cada uno.

Merece la pena mirar de cerca la línea case q if q < 5. Ese if dentro del case es una guarda, y permite que el pattern matching no compare solo formas y valores exactos, sino también condiciones. Escrito con if / else if / else ocuparía el doble y se leería peor; aquí los tres casos quedan alineados uno debajo de otro, que es justo cómo se piensa el problema.

Si quieres seguir practicando, prueba a sacar el total de existencias con items.map(_.quantity).sum, o a quedarte solo con los artículos agotados con items.filter(_.quantity == 0). Que ambas cosas salgan en una línea, sin bucles ni variables temporales, es exactamente lo que hace atractivo a Scala para trabajar con datos.

📖 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)