0Pricing
Go Academy · Lekcja

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 default podczas 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

  1. Instrukcje if i wyrażenia inicjalizujące
  2. Pętla for: wszystkie wzorce
  3. Instrukcje switch w Go
  4. break, continue i etykiety
← Powrót do Go Academy