Intervalos de Char e Personalizados
Vá além dos números inteiros
Intervalos de Char e Personalizados é uma aula grátis de Kotlin Academy no CoddyKit. Esta é a aula 4 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.
Além dos Inteiros
Os intervalos não servem apenas para Int. O Kotlin oferece suporte a intervalos de caracteres e de outros tipos comparáveis.
Esta lição explora intervalos de caracteres e como os tipos personalizados podem participar usando rangeTo.
Recapitulação dos Intervalos de Caracteres
Os caracteres têm uma ordem definida, portanto 'a'..'z' é um intervalo válido.
Você pode percorrê-lo, verificar a inclusão e muito mais.
fun main() {
for (c in 'a'..'f') print(c)
println()
println('q' in 'a'..'z')
}Validando Caracteres
Os intervalos de caracteres tornam a validação de entradas legível, por exemplo, ao verificar algarismos ou letras.
fun isDigit(c: Char): Boolean = c in '0'..'9'
fun main() {
println(isDigit('7'))
println(isDigit('x'))
}Contando Letras
Você pode criar rapidamente um alfabeto percorrendo um intervalo de caracteres e coletando os valores.
fun main() {
val alphabet = ('a'..'z').toList()
println(alphabet.size)
println(alphabet.first())
println(alphabet.last())
}Intervalos de Long
Os intervalos também funcionam com Long, o que é útil para grandes extensões numéricas.
Os mesmos operadores se aplicam.
fun main() {
val big = 1L..5L
println(big.sum())
}Intervalos Comparáveis
Qualquer tipo Comparable pode formar um intervalo com .., embora esses intervalos só permitam verificar a inclusão, não percorrê-los.
Por exemplo, os intervalos de String verificam a ordem lexicográfica.
fun main() {
val range = "apple".."mango"
println("cherry" in range)
println("zebra" in range)
}Por Que Alguns Intervalos Não Podem Ser Percorridos
Percorrer um intervalo exige um passo definido. Inteiros e caracteres têm um (adicionar 1), mas cadeias de caracteres e números de ponto flutuante não têm um próximo valor óbvio.
Por isso, esses intervalos aceitam in, mas não laços for.
fun main() {
val r = 1.0..5.0
println(2.5 in r)
// for (x in r) // not allowed for Double
}Tipos Personalizados com rangeTo
O operador .. chama uma função rangeTo. Se sua classe implementar Comparable, você obterá a verificação de inclusão em intervalos gratuitamente.
Aqui, uma versão simples de uma classe de versão faz comparações numéricas.
data class Ver(val n: Int) : Comparable<Ver> {
override fun compareTo(other: Ver) = n - other.n
}
fun main() {
val range = Ver(1)..Ver(5)
println(Ver(3) in range)
println(Ver(9) in range)
}O Operador por Trás dos Bastidores
Escrever a..b equivale a chamar a.rangeTo(b).
A forma com operador é apenas uma sintaxe mais conveniente para a mesma função.
fun main() {
val r1 = 1..5
val r2 = 1.rangeTo(5)
println(r1.toList() == r2.toList())
}Escolhendo o Intervalo Certo
Orientação rápida:
- Números e caracteres → percorrer e verificar
- Números de ponto flutuante e tipos comparáveis personalizados → apenas verificar a inclusão
- Precisa de um passo? Prefira progressões de inteiros ou caracteres
fun main() {
println('m' in 'a'..'z')
println(3.5 in 1.0..4.0)
println(50 in 1..100)
}Reunindo Tudo
Os intervalos se generalizam para muitos tipos:
- Intervalos de caracteres permitem percorrer e validar
- Intervalos de
Longlidam com grandes extensões - Tipos comparáveis e personalizados permitem verificar a inclusão
..é uma abreviação derangeTo
fun main() {
val vowels = "aeiou"
for (c in 'a'..'z') {
if (c in vowels) print(c)
}
println()
}Verificação Rápida
Teste sua compreensão sobre intervalos de caracteres e personalizados.
Recapitulação
Você aprendeu sobre intervalos de caracteres e personalizados:
- Intervalos de caracteres e de
Longpodem ser percorridos como os deInt - Tipos comparáveis permitem verificar a inclusão por meio de
.. - Tipos não discretos aceitam
in, mas não podem ser percorridos em um laço ..é uma abreviação derangeTo
Isso conclui o curso de Intervalos e Progressões.
Aprenda Kotlin com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 51
- Aulas
- 203
Perguntas Frequentes
A aula “Intervalos de Char e Personalizados” é grátis?
Sim — o texto completo de “Intervalos de Char e Personalizados” é 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 “Intervalos de Char e Personalizados”?
Vá além dos números inteiros 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 4 de 4.
Quanto tempo leva a aula “Intervalos de Char e Personalizados”?
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
- Operadores de Intervalo
- step e downTo
- Intervalos em Laços
- Intervalos de Char e Personalizados