Nastavení psaní se nepodařilo obnovit. Načti stránku znovu a zkus to ještě jednou.
Lekce psaní všemi deseti: Programování v jazyce Go
Pravidla výpočtu přesnosti se změnila. Toto cvičení začíná znovu od začátku.
Uložení dokončeného cvičení se nepodařilo potvrdit. Zkuste ho uložit znovu bez opětovného psaní.
Lekce psaní všemi deseti: Programování v jazyce Go
Psaní všemi deseti je při programování důležité. Při psaní kódu v programovacím jazyce Go vám techniky rychlého psaní pomohou pracovat efektivněji.
Programování v Go a psaní všemi deseti
Programování v Go a psaní všemi deseti spolu přirozeně souvisí. Go má přesně daná pravidla syntaxe a speciální znaky, které mohou být při rychlém psaní náročné. Psaní všemi deseti znamená psát bez dívání se na klávesnici a v kontextu jazyka Go je to důležité, protože jazyk vyžaduje přesnost: chybějící složená závorka nebo špatně napsaný operátor může způsobit chybu při kompilaci.
Co je charakteristické pro syntaxi Go?
Go je kompilovaný jazyk angl.: compiled language s čistým, minimalistickým stylem. Zdrojový kód vždy začíná deklarací package. Importy lze deklarovat jednotlivě nebo seskupit do bloků. Funkce se deklarují pomocí klíčového slova func a jejich rozsah vymezují složené závorky {}. Odsazení v Go neurčuje bloky; nástroj go fmt upravuje kód podle standardního formátování. Středníky se ve zdrojovém kódu obvykle vynechávají a překladač je podle konkrétních pravidel doplňuje na konci řádků. To znamená, že stisknutí klávesy Enter na správném místě není jen věcí estetiky, ale nutností v Go.
package main
import "fmt"
func main() {
fmt.Println("Hello, Go")
}
Znaky, na které je třeba si dávat pozor
Při psaní kódu v Go se často setkáte s určitými znaky. Složené závorky {} vymezují těla funkcí a bloky v řídicích strukturách. Kulaté závorky () obklopují parametry funkcí a volání. Hranaté závorky [] definují pole angl.: arrays a řezy angl.: slices. Uvozovky " a zpětné apostrofy angl.: backticks ` se používají pro řetězce. Operátor krátké deklarace := je běžný při vytváření proměnných. Kanály angl.: channels zavádějí operátor <-, který se v jiných jazycích téměř nevyskytuje a vyžaduje zvláštní pozornost.
Proměnné a deklarace
Na rozdíl od mnoha jazyků Go rozlišuje mezi deklarací pomocí var a krátkou deklarací proměnné pomocí :=. Tento operátor kombinuje dvojtečku a rovnítko, což může být nezvyklé, pokud ještě nejste zvyklí psát symboly rychle. Je dobré věnovat pozornost pohybu prstů - tento operátor se v programech Go objevuje neustále.
var count int = 10
message := "typed correctly"
Řídicí struktury
Go používá příkazy if, for a switch. Neobsahuje while. Syntaxe je stručná, ale vyžaduje pečlivé psaní porovnávacích operátorů ==, !=, <, > a také operátoru inkrementace ++. Použití = místo == v podmínce způsobí chybu při kompilaci.
for i := 0; i < 5; i++ {
if i%2 == 0 {
fmt.Println("even")
}
}
Funkce a vícenásobné návratové hodnoty
Funkce v Go mohou vracet více než jednu hodnotu. To je silná vlastnost, ale znamená to, že často píšete čárky v seznamech návratových hodnot a přiřazeních. Je dobré trénovat, dokud se psaní result, err := nestane automatickým.
func divide(a, b int) (int, error) {
if b == 0 {
return 0, fmt.Errorf("division by zero")
}
return a/b, nil
}
result, err := divide(10, 2)
Řezy (slices), mapy a složené literály
Hranaté závorky [] a složené závorky {} se vyskytují velmi často při práci s poli, řezy a mapami. Mapy také používají dvojtečky : k oddělení klíčů a hodnot. Tyto znaky dohromady tvoří některé z nejsložitějších řádků na přesné napsání.
nums := []int{1, 2, 3}
scores := map[string]int{"alice": 5, "bob": 7}
Struktury a metody
Typ struct v Go seskupuje data. Přidávání metod vyžaduje psaní závorek pro přijímače angl.: receivers a teček . pro přístup k polím nebo metodám. Po určité době se psaní těchto konstrukcí stane stejně automatické jako psaní klíčového slova func.
type User struct {
Name string
}
func (u User) Greet() string {
return "Hello " + u.Name
}
u := User{Name: "A"}
fmt.Println(u.Greet())
Rozhraní
Rozhraní angl.: interfaces v Go jsou naplňována implicitně, bez klíčového slova jako implements. Jejich definice znamená psát další složené závorky a signatury metod. Je to malá část syntaxe, ale stojí za to naučit se ji psát plynule.
type Stringer interface {
String() string
}
Souběžnost a kanály
Jedním z nejcharakterističtějších prvků Go je operátor kanálu <-. V mnoha jiných jazycích neexistuje a zpočátku se může zdát nepohodlný. Používáte ho oběma směry: pro odesílání ch <- value i pro přijímání value := <-ch. Trénink tohoto operátoru je důležitou součástí psaní v Go.
ch := make(chan int)
go func() { ch <- 42 }()
value := <-ch
Řetězce (strings) a runy (runes)
Go používá dvojité uvozovky pro běžné řetězce, zpětné apostrofy angl.: backticks pro surové řetězce angl.: raw strings a jednoduché uvozovky pro runy (jednotlivé znaky, typ rune). Je snadné je při rychlém psaní zaměnit, ale kompilátor je velmi přísný. Je dobré věnovat zvláštní pozornost přepínání mezi ", ` a '.
text := "normal string"
raw := `path\to\file`
r := 'a'
Odsazení a formátování
gofmt sjednocuje formátování kódu. Při psaní musíte také dodržovat pravidla týkající se závorek a konců řádků. Častou chybou je stisk Enter na špatném místě, například mezi return a vracenou hodnotou. Go na konci tohoto řádku automaticky vloží středník a ukončí příkaz return. Jakmile si na tato pravidla zvyknete, rytmus psaní bude odpovídat očekávanému stylu Go.
Shrnutí
Programování v Go vyžaduje pozornost při psaní. Nejdůležitější znaky jsou složené závorky {}, kulaté závorky (), hranaté závorky [], operátor krátké deklarace := a šipka kanálu <-. Tyto symboly jsou všude v kódu Go. Procvičujte psaní těchto znaků, abyste získali jistotu při rychlém a přesném psaní kódu v Go.