Kotlin při výrazu (s příklady)

V tomto článku se dozvíte o konstrukci v Kotlinu pomocí různých příkladů.

Kotlin, když Construct

whenKonstrukt v Kotlin si lze představit jako náhrada za switch Java. Vyhodnocuje část kódu mezi mnoha alternativami.

Příklad: Jednoduché při výrazu

 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") ) 

Když spustíte program, výstup bude něco jako:

 Zadejte operátor +, -, * nebo / * result = 60

Výše uvedený program přebírá vstupní řetězec od uživatele (Doporučené čtení: Získat řetězec od uživatele v Kotlině). Předpokládejme, že uživatel vstoupil *. V tomto případě je výraz a * bvyhodnocen a hodnota je přiřazena proměnnému výsledku.

Pokud žádná z podmínek poboček jsou splněny (uživatel zadal nic jiného, než +, -* nebo /), elseobor je hodnocena.

Ve výše uvedeném příkladu jsme použili whenjako výraz. Není však nutné jej používat whenjako výraz. Například,

 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") ) )

Když spustíte program, výstup bude něco jako:

 Zadejte operátor +, -, * nebo / - 12 - 5 = 7 

Tady whennení výraz (návratová hodnota z whennení k ničemu přiřazena). V tomto případě není elsepobočka povinná.

Několik možností

Kombinujte dvě nebo více podmínek větve s čárkou. Například,

 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.") ) )

Když spustíte program, výstup bude:

 n je záporné celé číslo větší než 3.

Zkontrolujte hodnotu v rozsahu. Například,

 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)") ) )

Když spustíte program, výstup bude:

 Kladné číslo mezi 10 a 100 (včetně)

Zkontrolujte, zda je hodnota konkrétního typu.

Chcete-li zkontrolovat, zda je hodnota určitého typu za běhu, můžeme použít operátor is a! Is. Například,

 když (x) (je Int -> tisk (x + 1) je String -> tisk (x.length + 1) je IntArray -> tisk (x.sum ())) 

Jako podmínku větve použijte výrazy. Například,

 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.") ) )

Když spustíte program, výstup bude:

Bingo! Je jedenáct.

Zajímavé články...