Deklarowanie i używanie zmiennych
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 lastName
są string
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ś.