Zum Hauptinhalt springen
Veröffentlicht am

Switch in Go

Teilen:

Einführung

Der switch ist ein leistungsstarkes Werkzeug in Go, das Programmierern ermöglicht, Entscheidungen basierend auf mehreren Fällen zu treffen. Im Vergleich zu Konditionalen mit if und else ist der switch oft lesbarer, besonders wenn viele Bedingungen behandelt werden.

Grundlagen des Switch

  1. Gleichheitsprüfung: Der switch vergleicht den gegebenen Ausdruck mit den Werten jedes case.
  2. Einmalige Ausführung: Anders als in anderen Sprachen verlässt das Programm in Go den switch-Block, sobald ein case übereinstimmt. Ein explizites "break" ist nicht erforderlich.
  3. Default-Klausel: Stimmt kein case überein, wird der Code unter default ausgeführt. default ist jedoch optional.

Einfacher Switch

wochentag := "donnerstag"

switch wochentag {
case "montag":
	fmt.Println("Heute ist Montag.")
case "dienstag":
	fmt.Println("Heute ist Dienstag.")
default:
	fmt.Println("Es ist weder Montag noch Dienstag.")
}

Switch mit Mehreren Bedingungen in einem Case

Es ist möglich, mehrere mögliche Werte in einem einzigen case zu kombinieren:

buchstabe := 'B'

switch buchstabe {
case 'A', 'E', 'I', 'O', 'U':
	fmt.Println("Vokal")
default:
	fmt.Println("Konsonant")
}

Switch mit Initialisierer

Genau wie die if-Anweisung kann der switch auch eine Initialisierung haben:

switch num := 5; num {
case 1, 3, 5, 7, 9:
	fmt.Println("Ungerade Zahl")
default:
	fmt.Println("Gerade Zahl")
}

Typ-Switch

Go unterstützt auch einen typbasierten switch, der nützlich ist, wenn man mit Interfaces arbeitet:

var x interface{} = "Text"

switch x.(type) {
case int:
	fmt.Println("x ist eine Ganzzahl")
case string:
	fmt.Println("x ist eine Zeichenkette")
default:
	fmt.Println("Unbekannter Typ")
}

Fazit

Die switch-Anweisung in Go bietet eine saubere und effiziente Möglichkeit, mehrere Bedingungen zu behandeln. Ob zum Prüfen von Werten oder Typen – der switch macht den Code strukturierter und lesbarer.

Happy coding!