go / beginner
Snippet
Switch-Anweisungen in Go
Go's switch ist flexibler als in vielen anderen Sprachen. Es kann gegen Werte oder Bedingungen ohne Ausdruck vergleichen. Cases fallen nicht standardmäßig durch (kein break nötig), aber du kannst `fallthrough` verwenden um fortzufahren. Mehrere Werte in einem Case werden durch Kommas getrennt. Der Ausdruck kann inline deklariert werden wie gezeigt mit `day := time.Now().Weekday()`.
snippet.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package mainimport ("fmt""time")func grade(score int) string {switch {case score >= 90:return "A"case score >= 80:return "B"case score >= 70:return "C"default:return "F"}}func main() {switch day := time.Now().Weekday(); day {case time.Saturday, time.Sunday:fmt.Println("Weekend!")default:fmt.Println("Weekday:", day)}fmt.Println("Score 85:", grade(85))}
Erklärung
1
switch {
Switch ohne Ausdruck evaluiert Boolesche Bedingungen
2
case score >= 90:
Bedingungs-basierter Case mit Vergleichsoperatoren
3
return "A"
Kein Fallthrough - Ausführung stoppt nach passendem Case
4
case time.Saturday, time.Sunday:
Mehrere Werte in einem Case durch Komma getrennt
5
switch day := time.Now().Weekday(); day {
Inline-Variablendeklaration in Switch-Anweisung