Instrukcje switch w Go
Switch z wyrażeniem i bez wyrażenia oraz fallthrough
Instrukcje switch w Go to bezpłatna lekcja Go Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Go Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Go Academy zawiera 4 lekcji w sumie.
Podstawy switch
switch w języku Go jest bardziej elastyczny niż w języku C: domyślnie nie wykonuje fallthrough, a przypadki mogą zawierać wiele wartości:
day := "Monday"
switch day {
case "Saturday", "Sunday":
fmt.Println("Weekend")
default:
fmt.Println("Weekday")
}Brak niejawnego fallthrough
W języku Go wykonanie każdego bloku case kończy się automatycznie — w przeciwieństwie do języka C, w którym trzeba jawnie zapisać break:
- Czytelniejszy kod i mniej błędów
- Używaj jawnie
fallthrough, gdy potrzebujesz zachowania znanego z języka C — zdarza się to rzadko
switch z instrukcją inicjalizującą
Podobnie jak if, switch przyjmuje opcjonalną instrukcję inicjalizującą:
switch os := runtime.GOOS; os {
case "linux":
fmt.Println("Linux")
case "darwin":
fmt.Println("macOS")
default:
fmt.Printf("Other: %s\n", os)
}switch bez wyrażenia (alternatywa dla łańcucha if-else)
Switch bez wyrażenia nie ma wyrażenia po słowie kluczowym — każdy przypadek oblicza wartość logiczną:
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")
}Switch typów
Switch typów sprawdza dynamiczny typ wartości interfejsu:
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
Używaj fallthrough, aby jawnie wykonać następny blok case niezależnie od jego warunku — jest to rzadko potrzebne:
n := 1
switch n {
case 1:
fmt.Println("one")
fallthrough
case 2:
fmt.Println("one or two")
}Wiele wartości w jednym case
W jednym przypadku wypisz wiele wartości, oddzielając je przecinkami:
func isVowel(c byte) bool {
switch c {
case 'a', 'e', 'i', 'o', 'u':
return true
}
return false
}switch a if-else
Używaj switch, gdy:
- Porównujesz jedno wyrażenie z wieloma wartościami
- Potrzebujesz switch typów do wyboru implementacji na podstawie interfejsu
- Zapewnia on większą czytelność niż łańcuch if-else
Używaj if-else, gdy warunki są różnymi wyrażeniami logicznymi.
break w switch
Aby wcześniej zakończyć switch, użyj break. Aby z poziomu switch zakończyć zewnętrzną pętlę, użyj break z etykietą:
loop:
for {
switch input() {
case "quit":
break loop // exits the for loop
}
}Przypadek default
Przypadek default jest wykonywany, gdy żaden inny przypadek nie pasuje. Dobre praktyki:
- Zawsze uwzględniaj
defaultpodczas obsługi wyliczeń — pozwala to wykryć nieoczekiwane wartości - Umieszczaj go na końcu, aby zwiększyć czytelność
- W switchach typów używaj
default, aby prawidłowo obsługiwać nieobsługiwane typy
Szybkie sprawdzenie
Co dzieje się w języku Go, gdy przypadek switch pasuje — czy wykonanie przechodzi do kolejnego przypadku?
Podsumowanie: switch w języku Go
Switch w języku Go jest przejrzysty i elastyczny:
- Brak niejawnego fallthrough — używaj jawnie
fallthrough - Instrukcja inicjalizująca do ograniczania zakresu zmiennych tymczasowych
- Switch bez wyrażenia jako alternatywa dla łańcucha if-else
- Switch typów do wyboru implementacji na podstawie interfejsu
- Wiele wartości w jednym przypadku, oddzielonych przecinkami
Następny temat: sterowanie pętlami za pomocą break, continue i etykiet.
Często zadawane pytania
Czy lekcja „Instrukcje switch w Go” jest bezpłatna?
Tak — pełny tekst „Instrukcje switch w Go” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Go Academy, przejdź na CoddyKit PRO. Kurs Go Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Instrukcje switch w Go”?
Switch z wyrażeniem i bez wyrażenia oraz fallthrough Ćwiczysz Go Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Go Academy?
Nie wymagamy żadnego doświadczenia. Go Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Instrukcje switch w Go”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Go Academy?
Tak. Każda lekcja Go Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Instrukcje if i wyrażenia inicjalizujące
- Pętla for: wszystkie wzorce
- Instrukcje switch w Go
- break, continue i etykiety