Kotlin Academy · Lezione

Alias di tipo

Assegni un nome ai tipi complessi

Lezione 1 di 413 passaggi

Alias di tipo è una lezione Kotlin Academy gratuita su CoddyKit. Questa è la lezione 1 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.

Che cos'è un alias di tipo?

Un alias di tipo assegna un nuovo nome a un tipo esistente. Non introduce un nuovo tipo: è solo uno strumento di leggibilità risolto in fase di compilazione.

Lo si dichiara con la parola chiave typealias.

typealias Name = String

fun main() {
    val n: Name = "Alice"
    println(n)
}

Dare un nome ai tipi funzione

I tipi funzione possono essere verbosi. Un alias rende le firme molto più facili da leggere.

typealias Handler = (String) -> Unit

fun register(h: Handler) {
    h("event fired")
}

fun main() {
    register { msg -> println(msg) }
}

Dare un nome ai tipi generici

I generics profondamente annidati, come Map<String, List<Int>>, sono più leggibili con un alias.

typealias ScoreBoard = Map<String, List<Int>>

fun main() {
    val board: ScoreBoard = mapOf("team1" to listOf(10, 20))
    println(board)
}

Gli alias sono trasparenti

Poiché un alias indica lo stesso tipo, i valori sono completamente intercambiabili. Name e String possono essere mescolati liberamente senza conversioni.

typealias Name = String

fun shout(s: String) = s.uppercase()

fun main() {
    val n: Name = "bob"
    println(shout(n))
}

Alias parametrizzati

Un alias di tipo può avere parametri di tipo propri e passarli al tipo sottostante.

typealias Pairs<T> = List<Pair<T, T>>

fun main() {
    val data: Pairs<Int> = listOf(1 to 2, 3 to 4)
    println(data)
}

Creare alias per classi annidate

Un percorso lungo verso una classe annidata o interna può ricevere un alias breve, riducendo il rumore degli import e il disordine nel codice.

class Outer {
    class Inner {
        fun hello() = "inner hello"
    }
}

typealias Shortcut = Outer.Inner

fun main() {
    println(Shortcut().hello())
}

Migliorare la leggibilità del dominio

Gli alias comunicano l'intento. typealias UserId = Int documenta che un intero rappresenta l'identità di un utente, anche se il compilatore continua a trattarlo come Int.

typealias UserId = Int
typealias Email = String

fun notify(id: UserId, to: Email) {
    println("Notify user " + id + " at " + to)
}

fun main() {
    notify(42, "a@b.com")
}

Nessuna sicurezza aggiuntiva sui tipi

Attenzione: poiché gli alias sono trasparenti, il compilatore non impedirà di passare un UserId dove è previsto un alias diverso di Int. Sono documentazione, non un meccanismo di controllo.

typealias UserId = Int
typealias OrderId = Int

fun process(order: OrderId) = println("order " + order)

fun main() {
    val user: UserId = 5
    process(user) // compiles fine — both are Int
}

Solo al primo livello

Gli alias di tipo devono essere dichiarati al primo livello di un file. Non è possibile definirli all'interno di funzioni o classi. Li si collochi vicino al codice correlato o in un file dedicato.

typealias Callback = () -> Unit

fun run(cb: Callback) = cb()

fun main() {
    run { println("done") }
}

Quando usare gli alias

Si ricorra agli alias di tipo quando:

  • Un tipo funzione o un generics è lungo e viene ripetuto
  • Si desiderano nomi autoesplicativi per i tipi primitivi
  • Serve un riferimento breve a un tipo annidato

Quando serve una vera sicurezza sui tipi, si usi invece una value class.

Alias e value class

Un alias è lo stesso tipo con un nuovo nome: sicurezza nulla. Una value class è un tipo distinto che impedisce di mescolare i valori. La prossima lezione tratta le value class.

Verifica rapida

Verifichi la Sua comprensione degli alias di tipo.

Riepilogo

Ha imparato a usare gli alias di tipo:

  • Dichiarati con typealias al primo livello
  • Sono solo un nuovo nome e completamente trasparenti
  • Utili per tipi funzione, generics e leggibilità
  • Non aggiungono sicurezza sui tipi

Prossimo argomento: value class inline per creare wrapper senza costi aggiuntivi.

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 «Alias di tipo» è gratuita?

Sì — il testo completo di «Alias di tipo» è 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 «Alias di tipo»?

Assegni un nome ai tipi complessi 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 1 di 4.

Quanto tempo richiede la lezione «Alias di tipo»?

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. Alias di tipo
  2. Inline value class
  3. Casi d'uso
  4. Limitazioni
← Torna a Kotlin Academy