Przejdź do głównej treści
eLearner.app
Moduł 1 · Lekcja 1 z 51/50 w kursie~10 min
Lekcje modułu (1/5)

Zmienne i typy

W Go każda zmienna ma typ statyczny znany kompilatorowi: raz zadeklarowana, zmienna nie może zmienić typu. Ta sztywność — zupełnie inna z JavaScript lub Pythona — to cena, jaką płacisz za czas kompilacji błędy zamiast błędów wykonawczych, małe pliki binarne i przewidywalne wydajność.

Dwie formy deklaracji

var z jawnym typem

Go
var name string = "Ada"
var age int = 36
var active bool

Jeśli pominiesz wartość (jak w var active bool), zmienna otrzyma wartość zerowa tego typu — wrócimy do tego w następnej lekcji.

Krótka deklaracja :=

Wewnątrz funkcji możesz użyć :=, który określa typ na podstawie wyrażenie po prawej stronie. Jest to forma idiomatyczna, której będziesz używać w 90% przypadków:

Go
name := "Ada"   // string
age := 36        // int
pi := 3.14       // float64
active := true   // bool

Podstawowe typy, które poznasz od razu

WpiszPrzykładNotatki
KODEF0KODEF1rozmiar zależy od procesora (32 lub 64 bity)
KODEF2KODEF3domyślnie dla literałów dziesiętnych
KODEF4KODEF5UTF-8, niezmienny
KODEF6KODEF7, KODEF8żadnej „prawdy”, tylko czysta bzdura
KODEF9KODEF10alias 421, reprezentuje punkt kodowy Unicode
KODEF12KODEF13pseudonim 424

Istnieją również int8/16/32/64, uint8/16/32/64, float32 i complex64/128 gdy potrzebujesz dokładnych rozmiarów (analiza binarna, interop itp.).

Wiele deklaracji

Możesz zadeklarować kilka zmiennych za pomocą bloku var lub liczby mnogiej :=:

Go
var (
    name   string = "Ada"
    age    int    = 36
    active bool
)

x, y := 10, 20
a, b, c := "a", 2, true   // different types: no problem

Zmienne zadeklarowane, ale nieużywane

Go jest rygorystyczne: zmienna zadeklarowana i nigdy nie używana jest kompilacją błąd, a nie ostrzeżenie. To samo dotyczy niewykorzystanych import.

Go
func main() {
    x := 42
    // error: x declared and not used
}

Aby tymczasowo wyciszyć regułę, użyj _ (pusty identyfikator):

Go
_ = x

Twoja kolej

Ćwiczenie#go.m1.l1.e1
Próby: 0Ładowanie...

Użyj var, aby zadeklarować nazwę zmiennej typu string o wartości „Ada” i wydrukować ją.

Ładowanie edytora...
Pokaż wskazówkę

Długa forma to `var <name> <type> = <value>`.

Rozwiązanie dostępne po 3 próbach

Ćwiczenie#go.m1.l1.e2
Próby: 0Ładowanie...

W jednym wierszu użyj :=, aby przypisać 36 do wieku i „Roma” do miasta, a następnie wypisz oba.

Ładowanie edytora...
Pokaż wskazówkę

Można przypisać wiele zmiennych na raz: `a, b := 1, "due"`.

Rozwiązanie dostępne po 3 próbach

Quiz#go.m1.l1.e3
Gotowe

Która z tych deklaracji powoduje błąd kompilacji, jeśli zostanie umieszczona POZA funkcją?

Go
// (a)
var name string = "Ada"

// (b)
age := 36

// (c)
const PI = 3.14
Opcje odpowiedzi

Podsumowanie

  • Typ statyczny, automatycznie wywnioskowany przez := lub zadeklarowany za pomocą var.
  • := tylko funkcje wewnętrzne; na poziomie pakietu tylko var/const.
  • Nieużywane zmienne i importy = błąd kompilacji: użyj _, aby je wyciszyć.
  • int/float64/string/bool pokrywają 90% codziennych przypadków.