Kotlin Academy · Lezione

Intervalli di Char e personalizzati

Vada oltre gli interi

Lezione 4 di 413 passaggi

Intervalli di Char e personalizzati è una lezione Kotlin Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Kotlin Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Kotlin Academy include 4 lezioni in totale.

Oltre gli interi

Gli intervalli non sono riservati a Int. Kotlin supporta gli intervalli di caratteri e di altri tipi confrontabili.

Questa lezione esplora gli intervalli di caratteri e il modo in cui i tipi personalizzati possono partecipare usando rangeTo.

Riepilogo degli intervalli di caratteri

I caratteri hanno un ordine definito, quindi 'a'..'z' è un intervallo valido.

È possibile iterare, verificare l'appartenenza e altro ancora.

fun main() {
    for (c in 'a'..'f') print(c)
    println()
    println('q' in 'a'..'z')
}

Convalidare i caratteri

Gli intervalli di caratteri rendono leggibile la convalida dell'input, ad esempio per verificare la presenza di cifre o lettere.

fun isDigit(c: Char): Boolean = c in '0'..'9'

fun main() {
    println(isDigit('7'))
    println(isDigit('x'))
}

Contare le lettere

È possibile creare rapidamente un alfabeto iterando su un intervallo di caratteri e raccogliendone i valori.

fun main() {
    val alphabet = ('a'..'z').toList()
    println(alphabet.size)
    println(alphabet.first())
    println(alphabet.last())
}

Intervalli Long

Gli intervalli funzionano anche con Long, una soluzione utile per grandi intervalli numerici.

Si applicano gli stessi operatori.

fun main() {
    val big = 1L..5L
    println(big.sum())
}

Intervalli di tipi confrontabili

Qualsiasi tipo Comparable può formare un intervallo con .., anche se tali intervalli supportano solo i controlli di appartenenza e non l'iterazione.

Ad esempio, gli intervalli di String verificano l'ordine lessicografico.

fun main() {
    val range = "apple".."mango"
    println("cherry" in range)
    println("zebra" in range)
}

Perché alcuni intervalli non possono essere iterati

Per iterare serve un passo definito. Gli interi e i caratteri ne hanno uno (aggiungere 1), ma le stringhe e i valori double non hanno un valore successivo ovvio.

Perciò questi intervalli supportano in, ma non i cicli for.

fun main() {
    val r = 1.0..5.0
    println(2.5 in r)
    // for (x in r) // not allowed for Double
}

Tipi personalizzati con rangeTo

L'operatore .. chiama una funzione rangeTo. Se la classe implementa Comparable, ottiene automaticamente il controllo di appartenenza agli intervalli.

Qui una semplice classe per le versioni esegue il confronto numerico.

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

L'operatore dietro le quinte

Scrivere a..b equivale a chiamare a.rangeTo(b).

La forma con l'operatore è semplicemente una sintassi più gradevole per la stessa funzione.

fun main() {
    val r1 = 1..5
    val r2 = 1.rangeTo(5)
    println(r1.toList() == r2.toList())
}

Scegliere l'intervallo giusto

Indicazioni rapide:

  • Numeri e caratteri → iterare e verificare
  • Double e tipi confrontabili personalizzati → verificare solo l'appartenenza
  • Serve un passo? Si attenga alle progressioni di interi o caratteri
fun main() {
    println('m' in 'a'..'z')
    println(3.5 in 1.0..4.0)
    println(50 in 1..100)
}

Riepilogo

Gli intervalli si generalizzano a molti tipi:

  • Gli intervalli di caratteri consentono di iterare e convalidare
  • Gli intervalli Long gestiscono grandi estensioni
  • I tipi Comparable e personalizzati supportano l'appartenenza
  • .. è una forma abbreviata di rangeTo
fun main() {
    val vowels = "aeiou"
    for (c in 'a'..'z') {
        if (c in vowels) print(c)
    }
    println()
}

Verifica rapida

Verifichi la Sua comprensione degli intervalli di caratteri e personalizzati.

Riepilogo

Ha imparato a conoscere gli intervalli di caratteri e personalizzati:

  • Gli intervalli di caratteri e Long sono iterabili come quelli di Int
  • I tipi Comparable supportano l'appartenenza tramite ..
  • I tipi non discreti verificano in, ma non possono essere usati in un ciclo
  • .. è una forma abbreviata di rangeTo

Ha completato il corso Intervalli e progressioni.

Gratis per iniziare

Impara Kotlin con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
51
Lezioni
203

Domande Frequenti

La lezione «Intervalli di Char e personalizzati» è gratuita?

Sì — il testo completo di «Intervalli di Char e personalizzati» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Kotlin Academy, passa a CoddyKit PRO. Il corso Kotlin Academy include 4 lezioni in totale.

Cosa imparerò in «Intervalli di Char e personalizzati»?

Vada oltre gli interi Eserciti Kotlin Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Kotlin Academy?

Non è richiesta alcuna esperienza precedente. Kotlin Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Intervalli di Char e personalizzati»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Kotlin Academy?

Sì. Ogni lezione Kotlin Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Operatori di intervallo
  2. step e downTo
  3. Intervalli nei cicli
  4. Intervalli di Char e personalizzati
← Torna a Kotlin Academy