Programovací jazyk Go je opensource projekt zameraný na zjednodušenie programovania. Go je expresívny, stručný, čistý a efektívny. Jeho súbežné mechanizmy umožňujú ľahko písať programy, ktoré využijú čo najviac z viacjadrových a sieťových zariadení, zatiaľ čo nový typ systému umožňuje flexibilné a modulárne budovanie programu. Go sa zostavuje rýchlo do strojového kódu, napriek tomu má výhodu garbage collection a silu run-time. Je to rýchly, staticky napísaný, skompilovaný jazyk, ktorý sa chová ako by bol dynamického typu, interpretovaný jazykom.
Formátovanie
Go zastáva názor, že je lepšie keď má kód vždy rovnaké formátovanie, určite to je len dobré pre mnohočlenné týmy, kde sa často musíte orientovať v cudzích kódoch. Otázne však bolo, ako to vyriešiť bez toho aby musel programátor študovať a dodržovať presne dané formátovanie, čo by asi každého otravovalo. Go má preto nástroj gofmt , ktorý číta vašu syntax programu, a automaticky formátuje kód.
Keď napíšete
type T struct {
name string // name of the object
value int // its value
}
name string // name of the object
value int // its value
}
gofmt to zmení
type T struct {
name string // name of the object
value int // its value
}
name string // name of the object
value int // its value
}
Vy jednoducho píšete kód svojím štýlom, a gofmt ho za vami opravuje na štandardizované Go formátovanie.
Go nemá žiadne obmedzenie na dĺžku riadka.
Go nevyžaduje toľko zátvoriek ako iné jazyky.
Komentáre
Go podporuje blokové komentáre /* */ a jednoriadkové // .
Program (a webový server) godoc spracováva Go zdrojáky pre extrahovanie dokumentácie o obsahu v balíčku. Komentáre ktoré sa objavia pred najvyššou úrovňou deklarácií sa extrahujú bez zmeny riadkovania spoločne s deklaráciou a slúžia ako dokumentácia pre balíček. Preto kvalita komentárov zaručuje kvalitu dokumentácie.
Každý balíček by mal mať blokový komentár pred prvou deklaráciou (na začiatku súbora)
/*
Balíček regexp implementuje jednoduchú knihovnu pre
regulárne výrazy.
Syntax pre regxp akceptuje:
regexp:
spojenia{ | spojenia }
Spojenia :
{ uzavretie }
Uzavretia:
podmienky [ * | + | ? ]
pofmienky:
^
$
.
character
[ [ ^ ] character-ranges ]
( regexp )
*/
package regexp
...
Balíček regexp implementuje jednoduchú knihovnu pre
regulárne výrazy.
Syntax pre regxp akceptuje:
regexp:
spojenia{ | spojenia }
Spojenia :
{ uzavretie }
Uzavretia:
podmienky [ * | + | ? ]
pofmienky:
^
$
.
character
[ [ ^ ] character-ranges ]
( regexp )
*/
package regexp
...
Názvy
Názvy sú dôležité v Go rovnako ako v akomkoľvek inom jazyku. V niektorých prípadoch majú dokonca sémantický efekt: napríklad, viditeľnosť u mena súboru určuje, či je jeho prvý znak je veľký.
Je preto dôležité venovať tejto konvencii určitý čas.
Názvy balíkov
Keď je balíček importovaný, jeho meno sa stáva vstupom pre obsah. Po
import "bytes"
importovaní balíka je ho možné používať ako bytes.Buffer. Je to užitočné pokiaľ sa používa viacej balíkov z rovnakým menom, čo znamená, že meno balíka by malo byť krátke, výstižné, evokujúce. Podľa konvencie: sa balíky začínajú malým písmenom, obsahujú jedno slovo, nemal by obsahovať podtržítka a medzery.
Ďalšou konvenciou je že názov balíka je základný názov zdrojovej zložky; balíček v src/pkg/container/vector je importovaný ako "container/vector" a nie container_vector alebo containerVector. V balíčku sa potom používa ako vector.Vector.
Importér použije meno balíku pre odkazovanie na jeho obsah (import zápis je hlavne určený pre testy a ďalšie nezvyčajné situácie), takže exportované mená v balíku môžu využiť túto skutočnosť, aby sa zabránilo kolíziám. Napríklad buferovaný reader v balíku bufio je pomenovaný Reader, nie BufReader, preto ho užívateľ vidí ako bufio.Reader, čo je čistý názov. Naviše, pretože importované subjekty sú vždy adresované z ich balíkovým názvom, bufio.Reader nikdy nebude mať konflikt s io.Reader. Podobne, funkcia ktorá vytvára novú instanciu s ring.Ring (ktorá má definovaný konstruktor v Go) by sa v normálnom prípade volala NewRing, ale pretože je funkcia umiestnená v balíčku Ring, môžeme funkciu pomenovať New, a tým ju voláme ako ring.New čo je dobrý názov.
Ďalšia krátka ukážka je once.Do; once.Do(setup) sa číta dobre, a nebude sa čítať lepšie keď napíšete once.DoOrWaitUntilDone(setup). Ak má názov znamenať niečo zložité alebo rafinované, je obvykle lepšie napísať tieto údaje do komentára z ktorého sa vytvára aj dokumentácia.
Getters
Go neposkytuje automatickú podporu pre prístupové metódy pre čítanie a zápis. Nieje nič zlé na tom, keď vytvoríte getery a settery svojpomocne, a učiniť tak je často vhodné, avšak nieje nutné aby ste písali Get pred názov. Keď máte položku pomenovanú owner (privátne, malými písmenami), tak metóda getteru by mala byť pomenovaná ako Owner (velikým písmenom, verejné), nie však GetOwner. Použitie prvého veľkého písmena v názve poskytuje výnimku pre zverejnenie vlastnosti z metódy. Setter funkcia, ak je potrebná, bude pravdepodobne volaná SetOwner.
owner := obj.Owner()
if owner != user {
obj.SetOwner(user)
}
if owner != user {
obj.SetOwner(user)
}
Niektoré vývojové prostredia ktoré podporujú tento jazyk používajú Gofmt pre rôzne funkcie. Je preto dobré dodržiavať formátovanie. Veľkosť prvých písmen vetšiny názvov určuje ich viditeľnosť. Prvé veľké písmeno určuje že budú tieto názvy viditeľné v iných častiach programu.
MixedCaps
A nakoniec, konvencie v Go môžu používať MixedCaps(zmiešané veľké písmená) radšej ako potržítka pre písanie musti_slov.
Inštalácia Go pre platformu Windows nieje vôbec jednoduchá. V budúcom článku sa pozrieme ako na to.
zdroj
Hodnocení +94
Líbí
Nelíbí
Přečteno 1043-krát
Líbí
NelíbíPřečteno 1043-krát
Komentáře
Přidat nový
Pro přispívání musíte být přihlášen


