Deklarace a používání proměnných
Začněme tímto modulem tím, že se podíváme na to, jak deklarovat a používat proměnné v Go. Proměnné lze deklarovat různými způsoby. Podíváme se na každý z nich a vyberete si ten, který nejlépe vyhovuje vašim potřebám nebo stylu. Povšimněte si některých věcí specifických pro Go, které obvykle nenajdete v jiných programovacích jazycích, protože prozkoumáme základní koncepty proměnných.
Do této části zahrneme fragmenty kódu, které můžete spustit v editoru Visual Studio Code nebo v Go Playgroundu.
Deklarace proměnných
Pokud chcete deklarovat proměnnou, musíte použít var
klíčové slovo:
var firstName string
Předchozí příkaz deklaruje proměnnou s názvem firstName
typu string
. (V nadcházející části si řekneme o datových typech.) Tento příklad ukazuje nejzákladnější způsob deklarace proměnné. Pokud chcete deklarovat jinou proměnnou, stačí přidat podobný příkaz k předchozímu. Pokud se jedná o stejný typ, můžete deklarovat více než jednu proměnnou na jednom řádku:
var firstName, lastName string
Přidáním čárky (,
) za název proměnné říkáte, že se chystáte deklarovat jinou proměnnou. V tomto případě předchozí příkaz deklaruje dvě proměnné pojmenované firstName
a lastName
typu string
. Pokud chcete přidat třetí proměnnou typu int
, bude kód vypadat takto:
var firstName, lastName string
var age int
Dalším způsobem, jak napsat předchozí příkaz, je použití závorek za var
klíčovým slovem, jako kdybyste měli vyhrazený blok pro deklaraci proměnných, například takto:
var (
firstName, lastName string
age int
)
Inicializace proměnných
V tuto chvíli jste deklarovali pouze proměnné, ale někdy je budete potřebovat, aby měly počáteční hodnotu. V go můžete inicializovat proměnné různými způsoby. Například pokračování ve stejném příkladu z předchozího příkladu byste mohli inicializovat každou proměnnou pomocí tohoto kódu:
var (
firstName string = "John"
lastName string = "Doe"
age int = 32
)
Pokud se rozhodnete inicializovat proměnnou, nemusíte zadávat její typ, protože Jazyk Go odvodí typ při inicializaci proměnné hodnotou. Můžete například deklarovat a inicializovat proměnné takto:
var (
firstName = "John"
lastName = "Doe"
age = 32
)
Go odvodí, že firstName
proměnné jsou typu string
a že age
proměnná je typem int
lastName
.
Různé způsoby inicializace proměnných
V go můžete deklarovat a inicializovat proměnné v jednom řádku. Jednotlivé názvy proměnných oddělíte čárkou a provedete to samé pro každou hodnotu (ve stejném pořadí), například takto:
var (
firstName, lastName, age = "John", "Doe", 32
)
Existuje jiný způsob, jak deklarovat a inicializovat proměnné. Tato metoda je nejběžnějším způsobem, jak to udělat v Go. Stejný příklad, který jsme používali, by mohl vypadat takto:
package main
import "fmt"
func main() {
firstName, lastName := "John", "Doe"
age := 32
fmt.Println(firstName, lastName, age)
}
Poznámka:
import "fmt"
Všimněte si příkazu. Klíčové slovo používáme import
k přenesení obsahu balíčku do oboru. Importujeme balíček fmt, abychom mohli použít metodu Println
v našem kódu. Podrobněji se na toto klíčové slovo podíváme v pozdější lekci.
Spuštěním předchozího kódu potvrďte, že tento způsob deklarování a inicializace proměnných funguje.
Všimněte si, že tady je potřeba zadat dvojtečku rovnítko (:=
) a odpovídající hodnotu hned po definování názvu proměnné. Když použijete dvojtečku rovnítko, proměnná, kterou deklarujete, musí být nová. Pokud použijete dvojtečku rovnítko a proměnná již byla deklarována, program se nezkompiluje. Přidejte věk jako konstantu (viz další část), ale použijte dvojtečku rovnítko (:=
) a zkuste to.
Nakonec můžete použít dvojtečku rovnítko pouze uvnitř funkce. Když deklarujete proměnné mimo funkci, musíte to provést pomocí klíčového var
slova. Nemějte obavy, pokud funkce neznáte. Funkce představíme v pozdější lekci.
Deklarace konstant
V kódu budete potřebovat statické hodnoty, které se označují jako konstanty. Jazyk Go podporuje použití konstant. Klíčové slovo, které má deklarovat, je const
.
Můžete například deklarovat konstantu takto:
const HTTPStatusOK = 200
Stejně jako u proměnných se typ konstanty odvodí z hodnoty, která je k ní přiřazena. V Go se názvy konstant obvykle zapisují v mixedCased nebo všechna velká písmena.
Pokud potřebujete deklarovat více konstant v jednom bloku, můžete to udělat takto:
const (
StatusOK = 0
StatusConnectionReset = 1
StatusOtherError = 2
)
Poznámka:
Go má zajímavý koncept související s konstantami, které se nazývají iota, které v tomto modulu nekrýváme. Další informace o tom ale najdete na wikiwebu Go na GitHubu. Mějte na paměti, že iota
je klíčové slovo, které Go používá ke zjednodušení konstantních definic, když jsou hodnoty sekvenční.
I když existují podobnosti mezi konstantami a proměnnými, existují některé klíčové rozdíly. Můžete například deklarovat konstanty bez jejich použití a nezobrazí se chybová zpráva. K deklaraci konstant nemůžete použít dvojtečku rovnítko. Jdi si stěžovat, kdybyste to udělal.
Go vyvolá chybu, pokud deklarujete proměnné a nepoužíváte je.
V Go je potřeba mít na paměti něco zásadního. Když deklarujete proměnnou a nepoužíváte ji, Go vyvolá chybu, ne upozornění jako v některých jiných programovacích jazycích.
Vraťme se například k jednomu z předchozích příkladů a odebereme fmt.Println
volání:
func main() {
firstName, lastName := "John", "Doe"
age := 32
}
Když tento kód spustíte v editoru Visual Studio Code nebo Go Playground, uvidíte na řádcích, ve kterých deklarujete proměnné, chyba. Zobrazí se tyto chybové zprávy:
./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
Mějte na paměti, že pro každou proměnnou, kterou deklarujete v Go, je nutné ji použít někde.