Deklarowanie i używanie zmiennych

Ukończone

Zacznijmy od tego modułu, sprawdzając sposób deklarowania i używania zmiennych w języku Go. Istnieją różne sposoby deklarowania zmiennej. Przyjrzymy się każdemu z nich i wybierzesz ten, który najlepiej odpowiada Twoim potrzebom lub stylowi. Zanotujemy pewne kwestie specyficzne dla języka Go, których zwykle nie można znaleźć w innych językach programowania, ponieważ zapoznamy się z podstawowymi pojęciami dotyczącymi zmiennych.

W tej sekcji dołączamy fragmenty kodu, które można uruchamiać w programie Visual Studio Code lub w środowisku Go Playground.

Deklarowanie zmiennych

Aby zadeklarować zmienną, należy użyć słowa kluczowego var :

var firstName string

Poprzednia instrukcja deklaruje zmienną o nazwie firstName typu string. (Omówimy typy danych w następnej sekcji). W tym przykładzie przedstawiono najbardziej podstawowy sposób deklarowania zmiennej. Jeśli chcesz zadeklarować inną zmienną, wystarczy dodać podobną instrukcję do poprzedniej. Możesz zadeklarować więcej niż jedną zmienną w jednym wierszu, jeśli są one tego samego typu:

var firstName, lastName string

Dodając przecinek (,) po nazwie zmiennej, mówisz, że chcesz zadeklarować inną zmienną. W tym przypadku poprzednia instrukcja deklaruje dwie zmienne o nazwie firstName i lastName typu string. Jeśli chcesz dodać trzecią zmienną typu int, kod będzie wyglądać następująco:

var firstName, lastName string
var age int

Innym sposobem na napisanie poprzedniej instrukcji jest użycie nawiasu po słowie var kluczowym, tak jak w przypadku dedykowanego bloku do deklarowania zmiennych w następujący sposób:

var (
    firstName, lastName string
    age int
)

Inicjowanie zmiennych

W tym momencie zadeklarowane są tylko zmienne, ale w razie potrzeby będą one miały wartość początkową. W języku Go można zainicjować zmienne na różne sposoby. Na przykład kontynuując ten sam przykład z wcześniejszego, można zainicjować każdą zmienną przy użyciu następującego kodu:

var (
    firstName string = "John"
    lastName  string = "Doe"
    age       int    = 32
)

Jeśli zdecydujesz się zainicjować zmienną, nie musisz określać jej typu, ponieważ język Go wywnioskuje typ podczas inicjowania zmiennej z wartością. Można na przykład zadeklarować i zainicjować zmienne w następujący sposób:

var (
    firstName = "John"
    lastName  = "Doe"
    age       = 32
)

Funkcja Go wywnioskuje, że firstName zmienne i lastNamestring typu i że zmienna age jest typem int .

Różne sposoby inicjowania zmiennych

W języku Go można zadeklarować i zainicjować zmienne w jednym wierszu. Każda nazwa zmiennej rozdziela się przecinkami i robi to samo dla każdej wartości (w tej samej kolejności), w następujący sposób:

var (
    firstName, lastName, age = "John", "Doe", 32
)

Istnieje inny sposób deklarowania i inicjowania zmiennych. Ta metoda jest najczęstszym sposobem wykonania tej czynności w języku Go. W tym samym przykładzie, z którym korzystaliśmy, może wyglądać następująco:

package main

import "fmt"

func main() {
    firstName, lastName := "John", "Doe"
    age := 32
    fmt.Println(firstName, lastName, age)
}

Uwaga

Zwróć uwagę na instrukcję import "fmt" . Używamy słowa kluczowego import , aby przenieść zawartość pakietu do zakresu. Importujemy pakiet "fmt", abyśmy mogli użyć Println metody w naszym kodzie. Przyjrzymy się bliżej temu słowu kluczowego w kolejnej lekcji.

Uruchom poprzedni kod, aby potwierdzić, że ten sposób deklarowania i inicjowania zmiennych działa.

Zwróć uwagę, że w tym miejscu należy dołączyć znak równości dwukropka (:=) i odpowiadającą mu wartość bezpośrednio po zdefiniowaniu nazwy zmiennej. Jeśli używasz znaku równości dwukropka, zadeklarowana zmienna musi być nową. Jeśli używasz znaku równości dwukropka, a zmienna została już zadeklarowana, program nie zostanie skompilowany. Dodaj wiek jako stałą (zobacz następną sekcję), ale użyj znaku równości dwukropka (:=) i spróbuj.

Na koniec możesz użyć znaku równości dwukropka tylko wewnątrz funkcji. W przypadku deklarowania zmiennych poza funkcją należy to zrobić przy użyciu słowa kluczowego var . Nie martw się, jeśli nie znasz funkcji. Wprowadzimy funkcje w kolejnej lekcji.

Deklarowanie stałych

W kodzie będą występować czasy, w których trzeba mieć wartości statyczne, znane jako stałe. Język Go obsługuje używanie stałych. Słowo kluczowe do zadeklarowania jednego to const.

Możesz na przykład zadeklarować stałą w następujący sposób:

const HTTPStatusOK = 200

Podobnie jak w przypadku zmiennych, typ stałej jest wnioskowany z wartości przypisanej do niej. W języku Go stałe nazwy są zwykle zapisywane w MixedCased lub wszystkich wielkich liter.

Jeśli musisz zadeklarować wiele stałych w jednym bloku, możesz to zrobić w następujący sposób:

const (
    StatusOK              = 0
    StatusConnectionReset = 1
    StatusOtherError      = 2
)

Uwaga

W języku Go znajduje się interesująca koncepcja związana z stałymi nazywanymi iotą, której nie obejmujemy w tym module. Możesz jednak dowiedzieć się więcej na ten temat, przeglądając witrynę typu wiki Go w witrynie GitHub. Pamiętaj tylko, że iota jest to słowo kluczowe, którego używa go, aby uprościć stałe definicje, gdy wartości są sekwencyjne.

Chociaż istnieją podobieństwa między stałymi i zmiennymi, istnieją pewne kluczowe różnice. Możesz na przykład zadeklarować stałe bez ich użycia i nie zostanie wyświetlony komunikat o błędzie. Nie można użyć znaku równości dwukropka, aby zadeklarować stałe. Go będzie narzekać, jeśli to zrobisz.

Funkcja Go zgłasza błąd, jeśli deklarujesz zmienne i nie używasz ich

Jest coś podstawowego, o czym należy pamiętać w języku Go. Gdy deklarujesz zmienną i nie używasz jej, program Go zgłasza błąd, a nie ostrzeżenie, jak w niektórych innych językach programowania.

Wróćmy na przykład do jednego z naszych poprzednich przykładów i usuńmy wywołanie fmt.Println :

func main() {
    firstName, lastName := "John", "Doe"
    age := 32
}

Po uruchomieniu tego kodu w programie Visual Studio Code lub środowisku Go Playground zobaczysz, że w wierszach, w których deklarujesz zmienne, wystąpi błąd. Zostaną wyświetlone następujące komunikaty o błędach:

./main.go:4:2: firstName declared but not used
./main.go:4:13: lastName declared but not used
./main.go:5:2: age declared but not used

Należy pamiętać, że dla każdej zmiennej zadeklarowanych w języku Go należy użyć jej gdzieś.