Kotlin når udtryk (med eksempler)

I denne artikel lærer du om, hvornår du konstruerer i Kotlin ved hjælp af forskellige eksempler.

Kotlin når konstruere

Den whenkonstrukt i Kotlin kan opfattes som en erstatning for Java switch Statement. Det evaluerer et afsnit af kode blandt mange alternativer.

Eksempel: Enkelt når udtryk

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

Når du kører programmet, vil output være omtrent som:

 Indtast operatør enten +, -, * eller / * resultat = 60

Ovenstående program tager en inputstreng fra brugeren (anbefalet læsning: Få strenginput fra brugeren i Kotlin). Antag, at brugeren indtastede *. I dette tilfælde a * bevalueres udtrykket , og værdien tildeles variabelt resultat.

Hvis ingen af branche betingelser er opfyldt (brugeren har indtastet noget bortset fra +, -, *, eller /), elsegren evalueres.

I ovenstående eksempel brugte vi whensom udtryk. Det er dog ikke obligatorisk at bruge whensom et udtryk. For eksempel,

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

Når du kører programmet, vil output være omtrent som:

 Indtast operatør enten +, -, * eller / - 12 - 5 = 7 

Her whener ikke et udtryk (returværdien fra whentildeles ikke noget). I dette tilfælde er elsefilialen ikke obligatorisk.

Få muligheder

Kombiner to eller flere grenforhold med et komma. For eksempel,

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

Når du kører programmet, vil output være:

 n er et negativt heltal større end 3.

Kontroller værdien i området. For eksempel,

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

Når du kører programmet, vil output være:

 Et positivt tal mellem 10 og 100 (inklusive)

Kontroller, om en værdi er af en bestemt type.

For at kontrollere, om en værdi er af en bestemt type i runtime, kan vi bruge is and! Is operator. For eksempel,

 når (x) (er Int -> print (x + 1) er streng -> print (x.længde + 1) er IntArray -> print (x.sum ())) 

Brug udtryk som grenforhold. For eksempel,

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

Når du kører programmet, vil output være:

Bingo! Det er elleve.

Interessante artikler...