I denne artikel lærer du om, hvornår du konstruerer i Kotlin ved hjælp af forskellige eksempler.
Kotlin når konstruere
Den when
konstrukt 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 * b
evalueres udtrykket , og værdien tildeles variabelt resultat.
Hvis ingen af branche betingelser er opfyldt (brugeren har indtastet noget bortset fra +
, -
, *, eller /
), else
gren evalueres.
I ovenstående eksempel brugte vi when
som udtryk. Det er dog ikke obligatorisk at bruge when
som 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 when
er ikke et udtryk (returværdien fra when
tildeles ikke noget). I dette tilfælde er else
filialen 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.