Fundamentos de match en Scala
Coincidir sobre valores simples, con alternativas, guardas y un caso atrapatodo.
// match is an expression: every case produces a value.
def dayKind(day: Int): String = day match
case 6 | 7 => "weekend" // | matches any of several values
case 1 => "restock"
case _ => "workday" // _ catches everything left over
// A guard puts a condition on a case.
def cellarNote(celsius: Int): String = celsius match
case c if c < 4 => "too cold for the barrels"
case c if c < 13 => "ideal"
case c if c < 20 => "watch it"
case _ => "move the casks"
def matchDemo(): Unit =
val today = dayKind(6)
println(today + ": " + cellarNote(11))
println(dayKind(3) + ": " + cellarNote(22))
Cómo funciona
case 6 | 7 => "weekend"coincide con cualquiera de los dos, y elcase _final recoge lo que sobra.cellarNotepone una condición en cada caso, comocase c if c < 4ycase c if c < 13.def dayKind(day: Int): String = day matchusa match como expresión: el resultado de la rama es el valor de retorno.
Palabras clave y builtins usados aquí
casedefifmatchval
El intento, en números
- Líneas
- 17
- Caracteres a escribir
- 605
- Tokens
- 109
- Ritmo de tres estrellas
- 75 tpm
Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 87 segundos.
Paso 2 de 3 en Expresiones; paso 5 de 27 en Fundamentos del lenguaje.