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.