Kotlin when Expression (con ejemplos)

En este artículo, aprenderá sobre cuándo construir en Kotlin con la ayuda de varios ejemplos.

Kotlin cuando Construye

La whenconstrucción en Kotlin se puede considerar como un reemplazo de la instrucción switch de Java. Evalúa una sección de código entre muchas alternativas.

Ejemplo: Simple when Expression

 fun main(args: Array) ( val a = 12 val b = 5 println("Enter operator either +, -, * or /") val operator = readLine() val result = when (operator) ( "+" -> a + b "-" -> a - b "*" -> a * b "/" -> a / b else -> "$operator operator is invalid operator." ) println("result = $result") ) 

Cuando ejecute el programa, la salida será algo como:

 Ingrese el operador +, -, * o / * resultado = 60

El programa anterior toma una cadena de entrada del usuario (Lectura recomendada: Obtenga la entrada de cadena del usuario en Kotlin). Supongamos que el usuario ingresó *. En este caso, la expresión a * bse evalúa y el valor se asigna a la variable resultado.

Si ninguna de las condiciones se satisfacen las sucursales (usuario ha introducido nada, excepto +, -, *, o /), elsese evalúa la rama.

En el ejemplo anterior, usamos whencomo expresión. Sin embargo, no es obligatorio utilizarlo whencomo expresión. Por ejemplo,

 fun main(args: Array) ( val a = 12 val b = 5 println("Enter operator either +, -, * or /") val operator = readLine() when (operator) ( "+" -> println("$a + $b = $(a + b)") "-" -> println("$a - $b = $(a - b)") "*" -> println("$a * $b = $(a * b)") "/" -> println("$a / $b = $(a / b)") else -> println("$operator is invalid") ) )

Cuando ejecute el programa, la salida será algo como:

 Ingrese el operador +, -, * o / - 12 - 5 = 7 

Aquí, whenno es una expresión (el valor de retorno de whenno se asigna a nada). En este caso, la elsesucursal no es obligatoria.

Pocas posibilidades

Combine dos o más condiciones de rama con una coma. Por ejemplo,

 fun main(args: Array) ( val n = -1 when (n) ( 1, 2, 3 -> println("n is a positive integer less than 4.") 0 -> println("n is zero") -1, -2 -> println("n is a negative integer greater than 3.") ) )

Cuando ejecute el programa, la salida será:

 n es un número entero negativo mayor que 3.

Compruebe el valor en el rango. Por ejemplo,

 fun main(args: Array) ( val a = 100 when (a) ( in 1… 10 -> println("A positive number less than 11.") in 10… 100 -> println("A positive number between 10 and 100 (inclusive)") ) )

Cuando ejecute el programa, la salida será:

 Un número positivo entre 10 y 100 (inclusive)

Compruebe si un valor es de un tipo en particular.

Para verificar si un valor es de un tipo particular en tiempo de ejecución, podemos usar el operador is y! Is. Por ejemplo,

 cuando (x) (es Int -> print (x + 1) es String -> print (x.length + 1) es IntArray -> print (x.sum ())) 

Utilice expresiones como condición de rama. Por ejemplo,

 fun main(args: Array) ( val a = 11 val n = "11" when (n) ( "cat" -> println("Cat? Really?") 12.toString() -> println("Close but not close enough.") a.toString() -> println("Bingo! It's eleven.") ) )

Cuando ejecute el programa, la salida será:

¡Bingo! Son las once.

Articulos interesantes...