typestar

Definir métodos en Scala

def con parámetros tipados y tipo de retorno, primero como expresión y luego con cuerpo indentado.

// def name(params): ReturnType = expression
def gramsPerCup(cups: Int): Int = cups * 15

// A body can be any expression, including a call to another def.
def brewWater(cups: Int): Double = gramsPerCup(cups) * 16.0

// An indented body may hold locals; the last expression is the
// result, so there is no return keyword.
def roastNote(minutes: Int, celsius: Int): String =
  val heatIndex = minutes * celsius
  val level =
    if heatIndex < 2000 then "light"
    else if heatIndex < 3400 then "medium"
    else "dark"
  level + " roast"

// Unit means the method is called for its effect, not its value.
def roastBrief(cups: Int): Unit =
  println(s"${gramsPerCup(cups)}g for ${brewWater(cups)}ml")
  println(roastNote(11, 215))

Cómo funciona

  1. def gramsPerCup(cups: Int): Int = cups * 15 mete parámetros, tipo de retorno y cuerpo en una línea.
  2. def brewWater(cups: Int): Double llama al primer método y su cuerpo sigue siendo una sola expresión.
  3. roastNote usa un cuerpo indentado con val heatIndex y val level =, y su resultado es level + " roast".

Palabras clave y builtins usados aquí

El intento, en números

Líneas
20
Caracteres a escribir
709
Tokens
113
Ritmo de tres estrellas
80 tpm

Al ritmo de tres estrellas de 80 tokens por minuto, este intento toma unos 85 segundos.

Escribe este fragmento

Paso 1 de 3 en Funciones; paso 7 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →