Instrukcje if i wyrażenia inicjalizujące
Instrukcje warunkowe z opcjonalnymi instrukcjami inicjalizującymi
Instrukcje if i wyrażenia inicjalizujące to bezpłatna lekcja Go Academy na CoddyKit. To lekcja 1 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.
if w języku Go
Instrukcja if w języku Go oblicza wyrażenie logiczne — nawiasy nie są wymagane, ale klamry są obowiązkowe:
if x > 0 {
// positive
}else i else if
Łącz warunki za pomocą else if, a przypadek domyślny obsługuj za pomocą else:
func classify(n int) string {
if n < 0 {
return "negative"
} else if n == 0 {
return "zero"
} else {
return "positive"
}
}if z instrukcją inicjalizującą
Go pozwala umieścić opcjonalną instrukcję inicjalizującą przed warunkiem — doskonale nadaje się ona do ograniczania zakresu zmiennych tymczasowych:
if err := doSomething(); err != nil {
// err is only in scope here
return err
}Zakres instrukcji inicjalizującej
Zmienne zadeklarowane w instrukcji inicjalizującej mają zakres ograniczony do bloku if/else. Zapobiega to przedostawaniu się zmiennych do otaczającej funkcji:
func process(id int) error {
if val, err := lookup(id); err != nil {
return err
} else {
use(val) // val is in scope here
}
return nil
}Wyrażenia logiczne
Warunek w języku Go musi mieć typ bool — konwersja niejawna nie jest wykonywana:
- Poprawnie:
if count != 0 - Niepoprawnie:
if count— w języku Go powoduje błąd kompilacji, w przeciwieństwie do C i JavaScriptu - Zapobiega to typowym błędom związanym z przesunięciem o jeden oraz wyłuskiwaniem wartości nil
Sprawdzanie wartości nil
Wskaźniki, slice'y, mapy i błędy można sprawdzać za pomocą == nil:
func greet(name *string) string {
if name == nil {
return "Hello, stranger"
}
return "Hello, " + *name
}Wzorzec wczesnego return
Go zdecydowanie preferuje wczesne instrukcje return, aby ograniczyć zagnieżdżenia — „szczęśliwa ścieżka” pozostaje przy lewym marginesie:
func save(user User) error {
if user.Name == "" {
return errors.New("name required")
}
if user.Age < 0 {
return errors.New("invalid age")
}
return db.Insert(user)
}Łączenie warunków
Używaj && i || do łączenia warunków. Obowiązuje ewaluacja z krótkim spięciem — prawa strona jest obliczana tylko wtedy, gdy jest to konieczne:
if user != nil && user.IsActive() {
sendEmail(user)
}if a switch
Gdy występuje wiele warunków dotyczących tej samej zmiennej, switch jest zwykle czytelniejszy. Używaj if, gdy:
- Warunki są niezależnymi wyrażeniami logicznymi
- Potrzebujesz instrukcji inicjalizujących wraz ze sprawdzaniem błędów
- Masz tylko jedną lub dwie gałęzie
Unikanie piramid if-else
Głęboko zagnieżdżone bloki if-else utrudniają czytanie kodu. Można temu zaradzić, stosując:
- Wczesne instrukcje return
- Instrukcje
switchdla wielu przypadków - Podział logiki na mniejsze funkcje
- Klauzule ochronne na początku funkcji
Szybkie sprawdzenie
Co wyróżnia instrukcję if w języku Go na tle języka C?
Podsumowanie: instrukcje if
Instrukcja if w języku Go jest elastyczna i przejrzysta:
- Brak nawiasów wokół warunku — klamry są wymagane
- Instrukcja inicjalizująca ogranicza zakres zmiennych do bloku if/else
- Warunek musi mieć dokładnie typ
bool - Należy preferować wczesne instrukcje return zamiast głębokich zagnieżdżeń
- Operatorów
&&/||należy używać z ewaluacją z krótkim spięciem
Następny temat: wszechstronna pętla for w języku Go.
Ucz się Go dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 51
- Lekcje
- 203
Często zadawane pytania
Czy lekcja „Instrukcje if i wyrażenia inicjalizujące” jest bezpłatna?
Tak — pełny tekst „Instrukcje if i wyrażenia inicjalizujące” 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 if i wyrażenia inicjalizujące”?
Instrukcje warunkowe z opcjonalnymi instrukcjami inicjalizującymi Ć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 1 z 4.
Ile czasu zajmuje lekcja „Instrukcje if i wyrażenia inicjalizujące”?
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