Vai al contenuto principale
Pubblicato il

Switch in Go

Condividi:

Introduzione

Il switch è uno strumento potente in Go che consente ai programmatori di prendere decisioni basate su più casi. A differenza dei condizionali con if e else, il switch è spesso più leggibile, specialmente quando si gestiscono molte condizioni.

Fondamenti del Switch

  1. Verifica di Uguaglianza: Il switch confronta l'espressione fornita con i valori di ogni case.
  2. Esecuzione Singola: A differenza di altri linguaggi, in Go, una volta che un case corrisponde, il programma esce dal blocco switch. Non è necessario un "break" esplicito.
  3. Clausola Default: Se nessun case corrisponde, verrà eseguito il codice sotto default. Tuttavia, default è opzionale.

Switch di Base

giorno := "giovedì"

switch giorno {
case "lunedì":
	fmt.Println("Oggi è lunedì.")
case "martedì":
	fmt.Println("Oggi è martedì.")
default:
	fmt.Println("Non è né lunedì né martedì.")
}

Switch con Più Condizioni in un Case

È possibile combinare più valori possibili in un singolo case:

lettera := 'B'

switch lettera {
case 'A', 'E', 'I', 'O', 'U':
	fmt.Println("Vocale")
default:
	fmt.Println("Consonante")
}

Switch con Inizializzatore

Proprio come l'istruzione if, anche il switch può avere un'inizializzazione:

switch num := 5; num {
case 1, 3, 5, 7, 9:
	fmt.Println("Numero dispari")
default:
	fmt.Println("Numero pari")
}

Switch di Tipo

Go supporta anche un switch basato sul tipo, utile quando si lavora con le interfacce:

var x interface{} = "testo"

switch x.(type) {
case int:
	fmt.Println("x è un intero")
case string:
	fmt.Println("x è una stringa")
default:
	fmt.Println("Tipo sconosciuto")
}

Conclusione

L'istruzione switch in Go offre un modo pulito ed efficiente per gestire più condizioni. Che si tratti di verificare valori o tipi, il switch rende il codice più organizzato e leggibile.

Happy coding!