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→0string→""(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ć
:=lubvar— 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 vetoraz linterów, takich jakstaticcheck
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— deklaracjavarz wnioskowaniem typuname := 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
- Deklarowanie zmiennych w Go
- Wbudowane typy języka Go
- Stałe i iota
- Konwersje typów w Go