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.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow