Site Overlay

Váš první program

Tradičně se první program napsaný v jakémkoli programovacím jazyce nazývá „Hello World“ – program, který jednoduše vypíše Hello World na terminál. Pojďme si jeden takový napsat pomocí jazyka Go.

Nejprve si vytvořte novou složku, do které uložíme náš program. Vytvořte složku s názvem ~/src/golang-book/chapter2. (Kde ~ znamená váš domovský adresář.) V terminálu to provedete zadáním následujících příkazů:

mkdir src/golang-bookmkdir src/golang-book/chapter2

Pomocí textového editoru zadejte následující příkaz:

package mainimport "fmt"// this is a commentfunc main() { fmt.Println("Hello World")}

Ujistěte se, že váš soubor je totožný s tím, co je zde uvedeno, a uložte jej jako main.go do složky, kterou jsme právě vytvořili. Otevřete nový terminál a zadejte následující příkaz:

cd src/golang-book/chapter2go run main.go

V terminálu byste měli vidět Hello World. Příkaz go run vezme následující soubory (oddělené mezerami), zkompiluje je do spustitelného souboru uloženého v dočasném adresáři a poté program spustí. Pokud jste neviděli zobrazený příkaz Hello World, možná jste při zadávání programu udělali chybu. Kompilátor Go vám napoví, kde je chyba. Stejně jako většina překladačů je i překladač Go extrémně pedantský a netoleruje chyby.

Jak číst program Go

Podívejme se na tento program podrobněji. Programy Go se čtou shora dolů, zleva doprava. (Jako kniha) První řádek říká toto:

package main

Tomu se říká „deklarace balíčku“. Každý program Go musí začínat deklarací balíčku. Balíčky jsou v jazyce Go způsobem organizace a opakovaného použití kódu. Existují dva typy programů Go: spustitelné soubory a knihovny. Spustitelné programy jsou takové programy, které můžeme spouštět přímo z terminálu. (V systému Windows končí .exe) Knihovny jsou sbírky kódu, které balíme dohromady, abychom je mohli použít v jiných programech. Knihovnami se budeme podrobněji zabývat později, zatím jen dbejte na to, abyste tento řádek zahrnuli do každého programu, který píšete.

Následující řádek je prázdný. Počítače reprezentují nové řádky speciálním znakem (nebo několika znaky). Nové řádky, mezery a tabulátory se označují jako bílé znaky (protože nejsou vidět). Go se o bílé znaky většinou nestará, používáme je proto, aby se programy lépe četly. (Tento řádek byste mohli odstranit a program by se choval úplně stejně)

Pak vidíme toto:

import "fmt"

Klíčové slovo import slouží k tomu, abychom do našeho programu zahrnuli kód z jiných balíčků. Balík fmt (zkratka pro formát) implementuje formátování pro vstup a výstup. Vzhledem k tomu, co jsme se právě naučili o balíčcích, co si myslíte, že by soubory balíčku fmt měly obsahovat na svém začátku?“

Všimněte si, že výše uvedený fmt je obklopen dvojitými uvozovkami. Takovéto použití dvojitých uvozovek je známé jako „řetězcový literál“, což je typ „výrazu“. V jazyce Go představují řetězce posloupnost znaků (písmen, čísel, symbolů, …) určité délky. Řetězce jsou podrobněji popsány v další kapitole, ale prozatím je důležité mít na paměti, že za úvodním znakem " musí nakonec následovat další znak " a vše mezi nimi je zahrnuto do řetězce. (Samotný znak " není součástí řetězce)

Řádek začínající znakem // se nazývá komentář. Překladač jazyka Go komentáře ignoruje a jsou tam kvůli vám (nebo kvůli tomu, kdo si vyzvedne zdrojový kód vašeho programu). Jazyk Go podporuje dva různé styly komentářů: // komentáře, ve kterých je součástí komentáře veškerý text mezi // a koncem řádku, a /* */ komentáře, ve kterých je součástí komentáře vše mezi *. (A může zahrnovat více řádků)

Po tom vidíte deklaraci funkce:

func main() { fmt.Println("Hello World")}

Funkce jsou stavebními kameny programu Go. Mají vstupy, výstupy a řadu kroků zvaných příkazy, které se provádějí v daném pořadí. Všechny funkce začínají klíčovým slovem func, za kterým následuje název funkce (v tomto případě main), seznam nula nebo více „parametrů“ obklopených závorkami, nepovinný návratový typ a „tělo“, které je obklopeno kudrnatými závorkami. Tato funkce nemá žádné parametry, nic nevrací a má pouze jeden příkaz. Název main je zvláštní, protože je to funkce, která se zavolá při spuštění programu.

Závěrečnou částí našeho programu je tento řádek:

 fmt.Println("Hello World")

Tento příkaz se skládá ze tří částí. Nejprve přistupujeme k další funkci uvnitř balíku fmt s názvem Println (to je ta část fmt.Println, Println znamená Tisk řádku). Poté vytvoříme nový řetězec, který obsahuje Hello World, a vyvoláme (také známé jako volání nebo provedení) tuto funkci s řetězcem jako prvním a jediným argumentem.

V tomto okamžiku jsme se již setkali se spoustou nové terminologie a možná jste trochu zahlceni. Někdy je užitečné si svůj program záměrně přečíst nahlas. Jedno čtení programu, který jsme právě napsali, by mohlo vypadat takto:

Vytvořte nový spustitelný program, který odkazuje na knihovnu fmt a obsahuje jednu funkci s názvem main. Tato funkce nepřijímá žádné argumenty, nic nevrací a dělá následující: Přistupuje k funkci Println obsažené uvnitř balíčku fmt a vyvolá ji pomocí jednoho argumentu – řetězce Hello World.

Funkce Println vykonává v tomto programu skutečnou práci. Více se o ní dozvíte, když do terminálu zadáte následující text:

godoc fmt Println

Mimo jiné byste měli vidět toto:

Println formats using the default formats for its operands and writes to standard output. Spaces are always added between operands and a newline is appended. It returns the number of bytes written and any write error encountered.

Go je velmi dobře zdokumentovaný programovací jazyk, ale tato dokumentace může být obtížně srozumitelná, pokud se již v programovacích jazycích nevyznáte. Nicméně příkaz godoc je nesmírně užitečný a je dobrým začátkem, kdykoli máte nějaký dotaz.

Zpět k dané funkci: Tato dokumentace vám říká, že funkce Println odešle na standardní výstup – název pro výstup terminálu, ve kterém pracujete – cokoli jí zadáte. Právě tato funkce způsobí, že se zobrazí Hello World.

V příští kapitole prozkoumáme, jak Go ukládá a reprezentuje věci, jako je Hello World, tím, že se naučíme o typech.

Problémy

  • Co je bílý znak?

  • Co je komentář? Jaké jsou dva způsoby zápisu komentáře?

  • Náš program začínal package main. Čím by začínaly soubory v balíčku fmt?

  • Použili jsme funkci Println definovanou v balíčku fmt. Kdybychom chtěli použít funkci Exit z balíčku os, co bychom museli udělat?

  • Podrobně upravte program, který jsme napsali, aby místo Hello World vypisoval Hello, my name is a za ním vaše jméno.

← Předchozí Index

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.