if como expresión en Scala
En Scala if/else evalúa a un valor, así que se puede asignar directo a un val.
val elevationGain = 820
// if/else is an expression, so it can be assigned to a val.
val grade =
if elevationGain < 300 then "easy"
else if elevationGain < 900 then "moderate"
else "strenuous"
// Both branches must agree on a type; here both are Int.
def restStops(gain: Int): Int =
if gain > 600 then 2 else 1
// Scala has no ternary operator because if already gives a value.
def waterLiters(hikers: Int, hot: Boolean): Double =
val perPerson = if hot then 2.0 else 1.25
hikers * perPerson
def hikePlan(): Unit =
println(s"$grade, ${restStops(elevationGain)} rest stops")
println(waterLiters(4, hot = true))
Cómo funciona
val grade =toma el resultado de la escaleraif elevationGain < 300 then "easy"que cierra enelse "strenuous".def restStops(gain: Int): Intdevuelve unif gain > 600 then 2 else 1de una línea, con ambas ramasInt.- En
waterLiters, el localval perPerson = if hot then 2.0 else 1.25muestra por qué Scala no necesita ternario.
Palabras clave y builtins usados aquí
defelseifthenval
El intento, en números
- Líneas
- 20
- Caracteres a escribir
- 613
- Tokens
- 102
- Ritmo de tres estrellas
- 80 tpm
Al ritmo de tres estrellas de 80 tokens por minuto, este intento toma unos 76 segundos.
Paso 1 de 3 en Expresiones; paso 4 de 27 en Fundamentos del lenguaje.