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
var name string = "Ada"
var age int = 36
var active boolJeś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:
name := "Ada" // string
age := 36 // int
pi := 3.14 // float64
active := true // boolPodstawowe typy, które poznasz od razu
| Wpisz | Przykład | Notatki |
|---|---|---|
| KODEF0 | KODEF1 | rozmiar zależy od procesora (32 lub 64 bity) |
| KODEF2 | KODEF3 | domyślnie dla literałów dziesiętnych |
| KODEF4 | KODEF5 | UTF-8, niezmienny |
| KODEF6 | KODEF7, KODEF8 | żadnej „prawdy”, tylko czysta bzdura |
| KODEF9 | KODEF10 | alias 421, reprezentuje punkt kodowy Unicode |
| KODEF12 | KODEF13 | pseudonim 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 :=:
var (
name string = "Ada"
age int = 36
active bool
)
x, y := 10, 20
a, b, c := "a", 2, true // different types: no problemZmienne 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.
func main() {
x := 42
// error: x declared and not used
}Aby tymczasowo wyciszyć regułę, użyj _ (pusty identyfikator):
_ = xTwoja kolej
Użyj var, aby zadeklarować nazwę zmiennej typu string o wartości „Ada” i wydrukować ją.
Pokaż wskazówkę
Długa forma to `var <name> <type> = <value>`.
Rozwiązanie dostępne po 3 próbach
W jednym wierszu użyj :=, aby przypisać 36 do wieku i „Roma” do miasta, a następnie wypisz oba.
Pokaż wskazówkę
Można przypisać wiele zmiennych na raz: `a, b := 1, "due"`.
Rozwiązanie dostępne po 3 próbach
Która z tych deklaracji powoduje błąd kompilacji, jeśli zostanie umieszczona POZA funkcją?
// (a)
var name string = "Ada"
// (b)
age := 36
// (c)
const PI = 3.14Podsumowanie
- Typ statyczny, automatycznie wywnioskowany przez
:=lub zadeklarowany za pomocąvar. :=tylko funkcje wewnętrzne; na poziomie pakietu tylkovar/const.- Nieużywane zmienne i importy = błąd kompilacji: użyj
_, aby je wyciszyć. int/float64/string/boolpokrywają 90% codziennych przypadków.