Scala Language
Si expresiones
Buscar..
Básico Si Expresiones
En Scala (en contraste con Java y la mayoría de los otros lenguajes), if
es una expresión en lugar de una declaración . En cualquier caso, la sintaxis es idéntica:
if(x < 1984) {
println("Good times")
} else if(x == 1984) {
println("The Orwellian Future begins")
} else {
println("Poor guy...")
}
La implicación de if
ser una expresión es que puede asignar el resultado de la evalación de la expresión a una variable:
val result = if(x > 0) "Greater than 0" else "Less than or equals 0"
\\ result: String = Greater than 0
Arriba vemos que la expresión if
se evalúa y el result
se establece en ese valor resultante.
El tipo de retorno de una expresión if
es el supertipo de todas las ramas lógicas. Esto significa que para este ejemplo, el tipo de retorno es una String
. Como no todas las expresiones if
devuelven un valor (como una instrucción if
que no tiene else
lógica de bifurcación), es posible que el tipo de retorno sea Any
:
val result = if(x > 0) "Greater than 0"
// result: Any = Greater than 0
Si no se puede devolver ningún valor (por ejemplo, si solo se usan efectos secundarios como println
dentro de las ramas lógicas), el tipo de retorno será Unit
:
val result = if(x > 0) println("Greater than 0")
// result: Unit = ()
if
expresiones en Scala son similares a cómo funciona el operador ternario en Java . Debido a esta similitud, no hay tal operador en Scala: sería redundante.
Las llaves se pueden omitir en un
if
la expresión si el contenido es una sola línea.