Kotlin Academy · Aula

Intervalos de Char e Personalizados

Vá além dos números inteiros

Aula 4 de 413 etapas

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 Long lidam com grandes extensões
  • Tipos comparáveis e personalizados permitem verificar a inclusão
  • .. é uma abreviação de rangeTo
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 Long podem ser percorridos como os de Int
  • 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 de rangeTo

Isso conclui o curso de Intervalos e Progressões.

Grátis para começar

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

  1. Operadores de Intervalo
  2. step e downTo
  3. Intervalos em Laços
  4. Intervalos de Char e Personalizados
← Voltar para Kotlin Academy