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
def gramsPerCup(cups: Int): Int = cups * 15mete parámetros, tipo de retorno y cuerpo en una línea.def brewWater(cups: Int): Doublellama al primer método y su cuerpo sigue siendo una sola expresión.roastNoteusa un cuerpo indentado conval heatIndexyval level =, y su resultado eslevel + " roast".
Palabras clave y builtins usados aquí
defelseifthenval
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.
Paso 1 de 3 en Funciones; paso 7 de 27 en Fundamentos del lenguaje.