A 10 ujjas gépelés jelentős a programozásban. A gyors gépelési technikák használatával hatékonyabban írhat kódot Go programozási nyelven.
Programozás Go-ban és 10 ujjas gépelésben
A Go nyelven való programozás és a gépelés gyakorlás természetesen összetartozik. A Go szigorú szintaxis-szabályokkal és speciális karakterekkel dolgozik, amelyek gyors gépelés közben könnyen hibára vihetnek. Egy hiányzó kapcsos zárójel vagy rosszul begépelt operátor azonnali fordítási hibát okoz - ezért a pontosság elsődleges.
Mi jellemző a Go szintaxisára?
A Go fordított nyelv ang.: compiled language tiszta, minimalista stílussal. A forráskód mindig package deklarációval indul. Az importokat blokkban szokás csoportosítani. A függvényeket a func kulcsszóval deklaráljuk, a tartományukat kapcsos zárójelek {} határolják. A behúzás nem opcionális - a Go a go fmt eszközzel egységes formázást kényszerít ki. Pontosvesszőt ritkán írunk; a fordító automatikusan beszúrja a sor végére a szabályok szerint. Emiatt a Enter helyes pozíciója szabály, nem ízlés kérdése.
package main
import "fmt"
func main() {
fmt.Println("Hello, Go")
}
Kiemelt karakterek, amelyekre érdemes figyelni
Gyakran fogsz írni kapcsos zárójeleket {} (blokkok), kerek zárójeleket () (paraméterek és hívások), szögletes zárójeleket [] (tömbök és szeletek - ang.: arrays, slices), idézőjeleket " és backtick-et ang.: backticks ` a sztringekhez. A rövid deklarációs operátor := mindennapos, a csatorna nyíl <- pedig Go-specifikus és távol eső billentyűket kombinál, ezért különösen könnyű elütni.
Változók és deklarációk
A Go különbséget tesz a var deklaráció és a rövid hozzárendelés := között. A := egyszerre jelent deklarálást és inicializálást lokális környezetben, míg a var külön típusmegadással (vagy típuslevezetéssel) használható. A := kettőspont + egyenlőség jel kombinációja - érdemes tudatosan gyakorolni.
var count int = 10
message := "typed correctly"
Vezérlési szerkezetek
A Go-ban if, for és switch van - while nincs. A for háromrészes (init; feltétel; léptetés) formában és "while-szerűen" is használható. A leggyakoribb hibák: = gépelése == helyett, illetve a relációs operátorok <, >, != elütése.
for i := 0; i < 5; i++ {
if i%2 == 0 {
fmt.Println("even")
}
}
i := 0
for i < 3 {
i++
}
Függvények és több visszatérési érték
A Go függvények több értéket is visszaadhatnak. Emiatt gyakori a vesszők használata a visszatérési lista és a bal oldali többes hozzárendelés esetén. A hibakezelés jellegzetes minta: result, err := ... majd if err != nil { ... }.
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)
if err != nil {
// kezeld a hibát
}
Slices, mapek és összetett literálok
A szögletes [] és kapcsos {} zárójelek állandó szereplők. A mapekben a kulcs-érték párokat kettőspont : választja el. Tipikus elütések: hiányzó vesszők a literálokban, vagy a zárójelek felcserélése.
nums := []int{1, 2, 3}
scores := map[string]int{
"alice": 5,
"bob": 7,
}
scores["carol"] = 9
Structok és metódusok
A struct adatok csoportosítására szolgál. A metódusok receiverrel ang.: receiver rendelkeznek, és a pont operátorral . hívhatók. A pointeres (*T) és érték szerinti (T) receiver különbözik viselkedésben - ezt a szignatúrában kell pontosan begépelni.
type User struct {
Name string
}
func (u User) Greet() string {
return "Hello " + u.Name
}
func (u *User) Rename(n string) {
u.Name = n
}
u := User{Name: "A"}
fmt.Println(u.Greet())
u.Rename("B")
Interfészek
Az interfészek ang.: interfaces teljesítése implicit - nincs implements kulcsszó. A definíciójuk rövid, de a kapcsos zárójelek és a metódusaláírások gépelése legyen hibátlan.
type Stringer interface {
String() string
}
Párhuzamosság és csatornák
A csatorna nyíl <- a Go egyik védjegye. Mind a küldés (ch <- value), mind a fogadás (value := <-ch) formáját meg kell szokni. A nyíl két karaktere távol van egymástól a billentyűzeten - érdemes tudatosan gyakorolni.
ch := make(chan int, 2)
go func() {
ch <- 42
}()
v := <-ch
fmt.Println(v)
Stringek és runok
Dupla idézőjel (") a normál stringhez, backtick ang.: backticks ` a raw stringhez (nyers sztring), aposztróf (') az egyetlen Unicode-kódponthoz (rune). A három különböző határoló közti elütés nagyon gyakori hiba.
text := "normal string"
raw := `path\to\file\*.txt
no escapes here`
r := 'ß'
Behúzás és formázás
A Go egységes kódstílust kényszerít ki (gofmt/go fmt). A kapcsos zárójelek pozíciója, az importblokkok rendezése, a tabulátor-alapú behúzás mind a formatter dolga - neked a helyes karakterek begépelésére kell koncentrálni. Fontos: a szemikolon-beillesztés szabályai miatt nem tehetsz sortörést például a return és a visszaadott kifejezés közé.
Összefoglalás
A Go-ban a kritikus karakterek: kapcsos zárójelek {}, kerek zárójelek (), szögletes zárójelek [], a rövid deklaráció := és a csatorna nyíl <-. Ezek adják a mindennapi kódolás "ritmusát". Ha ezeket következetesen és pontosan gépeled, a Go-kód gyorsan és megbízhatóan fog összeállni.