Intervalli di Char e personalizzati
Vada oltre gli interi
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
Longgestiscono grandi estensioni - I tipi Comparable e personalizzati supportano l'appartenenza
..è una forma abbreviata dirangeTo
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
Longsono iterabili come quelli diInt - I tipi Comparable supportano l'appartenenza tramite
.. - I tipi non discreti verificano
in, ma non possono essere usati in un ciclo ..è una forma abbreviata dirangeTo
Ha completato il corso Intervalli e progressioni.
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
- Operatori di intervallo
- step e downTo
- Intervalli nei cicli
- Intervalli di Char e personalizzati