typestar

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

  1. case 6 | 7 => "weekend" coincide con cualquiera de los dos, y el case _ final recoge lo que sobra.
  2. cellarNote pone una condición en cada caso, como case c if c < 4 y case c if c < 13.
  3. def dayKind(day: Int): String = day match usa match como expresión: el resultado de la rama es el valor de retorno.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 2 de 3 en Expresiones; paso 5 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →