0Pricing
Go Academy · Lekcja

Deklarowanie zmiennych w Go

var, := i wnioskowanie typów

Deklarowanie zmiennych w Go 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.

Czym jest zmienna

Zmienna to nazwane miejsce przechowywania wartości. W Go każda zmienna ma typ ustalony w czasie kompilacji.

  • Go jest statycznie typowany — typy nie mogą zmieniać się w czasie działania programu
  • Zmienne zawsze mają domyślną wartość zerową, jeśli nie zostaną jawnie ustawione
  • Znaczenie ma czytelne nazewnictwo: Go preferuje krótkie, jasne nazwy zamiast długich

Deklaracja var

Słowo kluczowe var jawnie deklaruje jedną zmienną lub większą ich liczbę:

package main

func main() {
    var name string
    var age  int
    var pi   float64 = 3.14
    _ = name
    _ = age
    _ = pi
}

Krótka deklaracja zmiennej :=

Wewnątrz funkcji można używać := do zwięzłego wykonania deklaracji i przypisania w jednym kroku.

  • Typ jest wywnioskowywany na podstawie prawej strony
  • := jest dostępne tylko wewnątrz ciała funkcji
  • Przynajmniej jedna zmienna po lewej stronie musi być nowa
package main

func main() {
    city := "Ankara"   // string inferred
    count := 42         // int inferred
    temp := 36.6        // float64 inferred
    _ = city
    _ = count
    _ = temp
}

Wartości zerowe

Go automatycznie inicjalizuje każdą zadeklarowaną zmienną jej wartością zerową:

  • int, float64 → 0
  • string → "" (pusty napis)
  • bool → false
  • Wskaźniki, wycinki, mapy, kanały → nil

Wartości zerowe eliminują błędy związane z niezainicjalizowanymi zmiennymi, częste w C/C++.

Deklarowanie wielu zmiennych

Kilka zmiennych można zadeklarować i przypisać naraz, używając formy blokowej lub krotkowej:

package main

var (
    host = "localhost"
    port = 8080
    debug = false
)

func main() {
    x, y := 10, 20
    _ = x
    _ = y
}

Reguły wnioskowania typów

Podczas używania := Go wywnioskowuje typ na podstawie literału:

  • Literały całkowite → int
  • Literały zmiennoprzecinkowe → float64
  • Literały napisowe → string
  • Literały zespolone → complex128

Jeśli potrzebny jest określony typ (np. int32), należy użyć jawnej deklaracji var lub konwersji.

Zmienne na poziomie pakietu a zmienne na poziomie funkcji

Zmienne mogą znajdować się na poziomie pakietu (globalne w obrębie pakietu) lub na poziomie funkcji (lokalne dla funkcji):

  • Poziom pakietu: należy użyć var — zmienna jest dostępna z dowolnego miejsca w pakiecie
  • Poziom funkcji: należy użyć := lub var — zmienna jest widoczna tylko wewnątrz funkcji
  • Należy preferować zmienne na poziomie funkcji, aby ograniczyć zakres stanu

Pusty identyfikator _

Pusty identyfikator _ odrzuca niepotrzebną wartość. Go wymaga użycia każdej zadeklarowanej zmiennej — _ jest wyjątkiem od tej zasady:

package main

func divide(a, b int) (int, int) {
    return a / b, a % b
}

func main() {
    quotient, _ := divide(10, 3) // discard remainder
    _ = quotient
}

Przesłanianie zmiennych

Przesłanianie ma miejsce, gdy zakres wewnętrzny deklaruje zmienną o takiej samej nazwie jak zmienna w zakresie zewnętrznym:

  • Zmienna wewnętrzna ukrywa zewnętrzną w swoim zakresie
  • Może to powodować trudne do wykrycia błędy — należy stosować je świadomie
  • Do wykrywania przypadkowego przesłaniania należy używać go vet oraz linterów, takich jak staticcheck

Częste błędy przy użyciu :=

Należy uważać na następujące pułapki związane z :=:

  • Użycie := na poziomie pakietu → błąd kompilacji
  • Wszystkie zmienne po lewej stronie już istnieją → zamiast tego należy użyć =
  • Przypadkowe przesłonięcie zewnętrznej zmiennej błędu w blokach if-err

W razie wątpliwości dla większej czytelności należy użyć jawnego var.

Szybkie sprawdzenie

Która z poniższych instrukcji ma poprawną składnię krótkiej deklaracji zmiennej w Go?

Podsumowanie: deklarowanie zmiennych

Wiesz już, jak deklarować zmienne w Go:

  • var name type — jawna deklaracja z wartością zerową
  • var name = value — deklaracja var z wnioskowaniem typu
  • name := value — krótka deklaracja wewnątrz funkcji
  • Wartości zerowe są nadawane automatycznie — nie występuje stan niezainicjalizowany
  • _ odrzuca niepotrzebne wartości

Dalej: wbudowane typy Go i szczegółowe omówienie ich wartości zerowych.

Zadanie praktyczne

Proszę spróbować samodzielnie: zadeklarować zmienną na poziomie pakietu appName typu string oraz zmienną na poziomie funkcji retries za pomocą :=, ustawioną na 3.

Należy pamiętać: zmienne na poziomie pakietu wymagają użycia var, a := jest poprawne tylko wewnątrz ciał funkcji.

Często zadawane pytania

Czy lekcja „Deklarowanie zmiennych w Go” jest bezpłatna?

Tak — pełny tekst „Deklarowanie zmiennych 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 „Deklarowanie zmiennych w Go”?

var, := i wnioskowanie typów Ć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 „Deklarowanie zmiennych 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. Deklarowanie zmiennych w Go
  2. Wbudowane typy języka Go
  3. Stałe i iota
  4. Konwersje typów w Go
← Powrót do Go Academy