Deklarace a používání proměnných

Dokončeno

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.