Istruzioni switch in Go
switch con e senza espressione, fallthrough
Istruzioni switch in Go è una lezione Go Academy gratuita su CoddyKit. Questa è la lezione 3 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 Go Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Go Academy include 4 lezioni in totale.
Fondamenti di switch
Lo switch di Go è più potente di quello di C: per impostazione predefinita non esegue il fall-through e i casi possono contenere più valori:
day := "Monday"
switch day {
case "Saturday", "Sunday":
fmt.Println("Weekend")
default:
fmt.Println("Weekday")
}Nessun fall-through implicito
In Go, il corpo di ogni case termina automaticamente, a differenza di C, dove è necessario scrivere esplicitamente break:
- Codice più chiaro e meno bug
- Utilizzi
fallthroughesplicitamente quando serve un comportamento simile a quello di C, evento raro
switch con istruzione di inizializzazione
Come if, anche switch accetta un'istruzione di inizializzazione facoltativa:
switch os := runtime.GOOS; os {
case "linux":
fmt.Println("Linux")
case "darwin":
fmt.Println("macOS")
default:
fmt.Printf("Other: %s\n", os)
}switch senza espressione (alternativa alla catena if-else)
Uno switch senza espressione non presenta nulla dopo la parola chiave: ogni caso valuta un booleano:
score := 75
switch {
case score >= 90:
fmt.Println("A")
case score >= 80:
fmt.Println("B")
case score >= 70:
fmt.Println("C")
default:
fmt.Println("F")
}Type switch
Un type switch esamina il tipo dinamico di un valore di interfaccia:
func describe(i interface{}) {
switch v := i.(type) {
case int:
fmt.Printf("int: %d\n", v)
case string:
fmt.Printf("string: %s\n", v)
default:
fmt.Printf("unknown: %T\n", v)
}
}fallthrough
Utilizzi fallthrough per eseguire esplicitamente il corpo del caso successivo indipendentemente dalla sua condizione; è raramente necessario:
n := 1
switch n {
case 1:
fmt.Println("one")
fallthrough
case 2:
fmt.Println("one or two")
}Più valori per ogni case
Elencare più valori separati da virgole in un singolo case:
func isVowel(c byte) bool {
switch c {
case 'a', 'e', 'i', 'o', 'u':
return true
}
return false
}switch e if-else a confronto
Utilizzi switch quando:
- Confronta un'espressione con molti valori
- Utilizza un type switch per la distribuzione su interfacce
- La leggibilità migliora rispetto a una catena di if-else
Utilizzi if-else quando le condizioni sono espressioni booleane diverse.
break in switch
Per uscire anticipatamente da uno switch, utilizzi break. Per uscire da un ciclo esterno dall'interno di uno switch, utilizzi un break con etichetta:
loop:
for {
switch input() {
case "quit":
break loop // exits the for loop
}
}Caso default
Il caso default viene eseguito quando nessun altro caso corrisponde. Buone pratiche:
- Includa sempre
defaultquando gestisce enumerazioni, per intercettare valori imprevisti - Lo posizioni in fondo per migliorare la leggibilità
- Nei type switch, utilizzi
defaultper gestire con eleganza i tipi non supportati
Verifica rapida
In Go, cosa accade quando un caso dello switch corrisponde: l'esecuzione prosegue nel caso successivo?
Riepilogo: switch in Go
Lo switch di Go è chiaro e potente:
- Nessun fall-through implicito: utilizzi
fallthroughesplicitamente - Istruzione di inizializzazione per limitare l'ambito delle variabili temporanee
- Switch senza espressione come alternativa a una catena if-else
- Type switch per la distribuzione su interfacce
- Più valori per ogni case, separati da virgole
Successivo: controllo dei cicli con break, continue ed etichette.
Domande Frequenti
La lezione «Istruzioni switch in Go» è gratuita?
Sì — il testo completo di «Istruzioni switch in Go» è 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 Go Academy, passa a CoddyKit PRO. Il corso Go Academy include 4 lezioni in totale.
Cosa imparerò in «Istruzioni switch in Go»?
switch con e senza espressione, fallthrough Eserciti Go 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 Go Academy?
Non è richiesta alcuna esperienza precedente. Go 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 3 di 4.
Quanto tempo richiede la lezione «Istruzioni switch in Go»?
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 Go Academy?
Sì. Ogni lezione Go 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
- Istruzioni if ed espressioni di inizializzazione
- Il ciclo for: tutti i modelli
- Istruzioni switch in Go
- break, continue ed etichette