Lekce psaní na stroji: Programování v jazyce Go

zavřete a začněte psát

Psaní všemi deseti je významné v programování. Při psaní kódu v Go programovacím jazyce budete efektivnější používat techniky rychlého psaní.

Pojďme se dozvědět více o jazyce Go a psaní všemi deseti při programování v Go.

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 okamžitě způsobí 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 jsou seskupeny v blocích. Funkce se deklarují pomocí klíčového slova func a jejich rozsah vymezují složené závorky {}. Odsazení není volitelné - Go vynucuje formátování pomocí nástroje go fmt. Jazyk nepoužívá středníky v běžném zápisu, ale kompilátor je automaticky vkládá na konci řádku. To znamená, že stisk 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 {} se objevují po každé funkci nebo řídicí struktuře. 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átkým přiřazením 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 ++. I malá chyba, jako použití = místo ==, kód okamžitě zastaví.

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
}

Současnost 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í

Go vynucuje jednotný styl kódu. To je užitečné, ale také to znamená, že musíte dodržovat pravidla týkající se závorek a konců řádků. Častou chybou je stisk Enter na špatném místě, například za slovem return. Go okamžitě nahlásí chybu. 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čování jejich psaní, dokud se nestane přirozeným, je klíčem k rychlému a bezchybné psaní programů v Go.