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í.
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.