when como Expressão
Retorne valores de when
when como Expressão é uma aula grátis de Kotlin Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Kotlin Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kotlin Academy inclui 4 aulas no total.
when como expressão
O when do Kotlin é mais do que uma instrução switch. Ele é uma expressão, ou seja, produz um valor que você pode atribuir ou retornar.
Isso torna a lógica de ramificação concisa e fácil de ler.
Retornando um valor
Quando usado como expressão, cada ramo fornece um resultado. O valor do ramo correspondente se torna o resultado de todo o when.
fun main() {
val day = 3
val name = when (day) {
1 -> "Monday"
2 -> "Tuesday"
3 -> "Wednesday"
else -> "Other"
}
println(name)
}else é obrigatório
Quando usado como expressão, when deve ser exaustivo. Para valores arbitrários, isso significa incluir um ramo else.
Sem ele, o compilador não pode garantir que um valor será produzido.
fun grade(score: Int): String = when {
score >= 90 -> "A"
score >= 80 -> "B"
else -> "C"
}
fun main() {
println(grade(85))
}Vários valores por ramo
Separe vários valores com vírgulas para compartilhá-los em um único ramo.
Isso é mais limpo do que repetir o mesmo corpo.
fun main() {
val day = 6
val type = when (day) {
1, 2, 3, 4, 5 -> "Weekday"
6, 7 -> "Weekend"
else -> "Invalid"
}
println(type)
}when sem argumento
Omita o valor analisado, e cada ramo se tornará uma condição booleana.
Isso substitui uma cadeia de if/else if por um bloco organizado.
fun main() {
val temp = 18
val feel = when {
temp < 0 -> "Freezing"
temp < 15 -> "Cold"
temp < 25 -> "Mild"
else -> "Hot"
}
println(feel)
}Intervalos nos ramos
Os ramos podem testar intervalos com in.
Isso representa faixas numéricas de maneira muito natural.
fun main() {
val score = 73
val band = when (score) {
in 0..59 -> "Fail"
in 60..79 -> "Pass"
in 80..100 -> "Excellent"
else -> "Invalid"
}
println(band)
}Verificações de tipo nos ramos
Os ramos podem verificar tipos com is.
O resultado de cada ramo pode ser diferente, e when retorna o tipo comum.
fun describe(x: Any): String = when (x) {
is Int -> "Integer"
is String -> "Text"
else -> "Unknown"
}
fun main() {
println(describe(42))
println(describe("hi"))
}Blocos de ramo
Um ramo pode ser um bloco com várias instruções. A última expressão do bloco é o seu valor.
fun main() {
val n = 5
val result = when {
n > 0 -> {
val doubled = n * 2
"Positive, doubled is " + doubled
}
else -> "Non-positive"
}
println(result)
}Retornando when diretamente
Uma função pode retornar uma expressão when diretamente, usando um corpo de expressão única.
Esse é um estilo muito comum e limpo em Kotlin.
fun sign(n: Int): String = when {
n > 0 -> "positive"
n < 0 -> "negative"
else -> "zero"
}
fun main() {
println(sign(-4))
}Capturando o valor analisado
Você pode declarar o valor analisado dentro de when para que ele fique disponível nos ramos.
Isso mantém um valor temporário em um escopo bem restrito.
fun describeLength(text: String): String = when (val len = text.length) {
0 -> "empty"
in 1..5 -> "short (" + len + ")"
else -> "long (" + len + ")"
}
fun main() {
println(describeLength("hello"))
}Juntando tudo
Como expressão, when é um poderoso produtor de valores:
- Cada ramo fornece um resultado
elsetorna a expressão exaustiva- Oferece suporte a vírgulas, intervalos, tipos e blocos
fun ticketPrice(age: Int): Int = when {
age < 6 -> 0
age < 18 -> 10
age >= 65 -> 8
else -> 15
}
fun main() {
println(ticketPrice(4))
println(ticketPrice(70))
}Verificação rápida
Teste sua compreensão de when como expressão.
Recapitulação
Você aprendeu a usar when como expressão:
- Ele retorna o valor do ramo correspondente
- Precisa de
elsepara ser exaustivo - Oferece suporte a vírgulas, intervalos, verificações de tipo e blocos
A seguir, você verá como as conversões inteligentes permitem que o compilador restrinja os tipos para você.
Perguntas Frequentes
A aula “when como Expressão” é grátis?
Sim — o texto completo de “when como Expressão” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Kotlin Academy, atualize para CoddyKit PRO. O curso de Kotlin Academy inclui 4 aulas no total.
O que vou aprender em “when como Expressão”?
Retorne valores de when Você pratica Kotlin Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Kotlin Academy?
Nenhuma experiência prévia é necessária. Kotlin Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “when como Expressão”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Kotlin Academy?
Sim. Cada aula de Kotlin Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- when como Expressão
- Conversões Inteligentes
- Operadores is e as
- when Exaustivo