Go (lavar programmiñ)
Go zo ul lavar programmiñ savet gant ijinourien Google. Simpl eo, gant nebeud a c’herioù miret, ha lakaat a ra aes an implij eus coroutines, anvet goroutines e Go, isprogrammoù a c’hell labourat e memes tro ma’z eus meur a vikroprosesor, pe un hini liesgalon, en urzhiataer.
War-dro Go
kemmañAnv
kemmañAnv al lavar a zo Go. Pa ne c’heller ket ober gant ar ger go e vez implijet golang en e lec’h[1].
Istor
kemmañKroget o deus Robert Griesemer, Rob Pike ha Ken Thompson krouiñ Go e miz Gwengolo 2007, ha deuet eo Ian Taylor ha Russ Cox da labourat ganto e 2008. Roet eo bet da c’houzout d’an holl e miz Du 2009[2]. O fal a oa sevel ul lavar programmiñ nevez, simploc’h evit ar re a oa implijet peurliesañ er mare-se (C, C++, Java…), hag e vije aes ganti ober gant mikroprosesorioù liesgalon[3].
Degaset e vez div zoare Go pep bloaz, unan e miz C’hwevrer hag unan e miz Eost abaoe Go 1.5[4]. Abaoe Go 1 e rank pep doare bezañ kendere war-grec’h[5].
Gopher
kemmañArouez Go eo ur razh-godell (gopher e saozneg) treset gant Renée French[6]. Graet e vez implijerien Go gophers ivez[2].
Al lavar
kemmañAnvioù disklaeriet
kemmañGallout a reer reiñ anvioù da bep tra gant arouezioù Unicode, da lavarout eo, implijout lizherennoù evel ñ pe ù e anvioù ar variantennoù[7].
Memor
kemmañKempennet e vez ar memor gant ur skuber-dilerc’hoù, un isprogram a glask pep tamm memor a zo bet merket evel implijet met n’eo ket ken. Neuze, n’eo ket ar programmer a rank diverkañ an tammoù memor pa n’eus ket ezhomm anezho ken, pezh a gemer kalz amzer d’ar brogrammerien hag a zo kaoz kalz fazioù e programmoù skrivet e lavarioù ha na reont ket gant ur skuber-dilerc'hoù[8].
Tiperezh
kemmañStrizh eo reolennoù tipañ Go. Rankout a ra pep variantenn bezañ disklêriet gant e zip, ha ne vez ket treuztipet ar variantennoù nemet pa vez goulennet gant ar programmer. Daoust m’eo Go ul lavar programmiñ reteret objed, n’eus klasoù ebet, e kontrol da lavarioù evel C++ pe Java, met gallout a reer stagañ metodoù ouzh pep tip. Gallout a reer krouiñ etrefasioù, met ne zisklêrier ket o implij (n’eus ger miret par da implements ebet)[9].
Dastumadoù ha for range
kemmañTipoù ispicial zo e Go evit ober gant dastumadoù: tailhennoù (slices) ha tablennoù asosiativel (maps). Un dailhenn eo un daolenn a c’hell kreskiñ hep harz nemet memor an urzhiataer, e kontrol d’an taolennoù e kaver e meur a lavar programmiñ all. Taolennoù normal zo e Go ivez, da vezañ implijet pa ouzer pet roadenn a vo enni.
Gant an daou seurt a dip-mañ e c’heller implijout an tro for range evit ober un dra bennak gant pep roadenn.
Da skouer, setu penaos krouiñ an dailhenn, lakaat an niverennoù etre 3 ha 6 enni, ha diskwel pep niverenn (gwelout er poull-traezh).
var niverennoù []int
for niverenn := 3; niverenn < 7; niverenn++ {
niverennoù = append(niverennoù, niverenn)
}
for i, n := range niverennoù {
fmt.Printf("%d: %d\n", i, n)
}
Goroutines
kemmañGoroutines zo isprogrammoù a c’hell labourat e memes tro. Par int da neudelloù gwer, da lavarout eo, prosesusoù skañv krouet gant sikour ar reizhiad korvoiñ ha meret gant levraoueg peurgas Go. Lañset e vez ur goroutine evel ma c’halver ur fonksion, nemet gant ar ger miret go en a-raok[10].
Kanolioù
kemmañGant kanolioù e c’haser roadennoù a c’hell bezañ resevet gant prosesusoù all[11]. Neuze e c’hell meur a c’horoutine treuzkas kannadoù kenetrezo en un doare aesoc’h evit an doareoù kavet el lodenn vrasañ eus al lavarioù programmiñ all.
Dematañ e Go
kemmañSed amañ ur program a lavar demat d’an holl e Go (gwelout anezhañ er poull-traezh):
package main
import (
"fmt"
)
func main() {
fmt.Println("Demat d’an holl!")
}
Binvioù
kemmañKompiler
kemmañAbaoe doare 1.5 eo kompiler ofisiel Go skrivet e Go[12]. Kompilerioù all zo: gccgo, diazezet war GCC; gollmv, diazezet war LLVM; TinyGo[13], evit ar sistemoù emframmet.
Strizh-kenañ eo kompiler Go. Da skouer, disklêriañ ur variantenn hep implijout anezhi zo ur fazi a lak ar c’hompiler da nac’hañ kompilañ ar program. A-ratozh-kaer eo evit klask lakaat diaesoc’h ober fazioù e programmoù Go[14].
Gallout a ra ar c’hompiler ofisiel produiñ restroù binarel da beurgas evit meur a reizhiad korvoiñ: Linux, Windows, Darwin (kraoñell Mac OS X), FreeBSD ha reizhiadoù Unix all[15].
Unan eus palioù kentañ krouerien Go a oa sevel ur c’hompiler buan. Er mare-se e oa savet al lodenn vrasañ eus meziantoù Google e C++, met re hir e pade kompilañ ar mammennoù[16].
Lodennoù
kemmañAbaoe Go 1.11 e c’heller sevel tammoù kod, anvet modules (lodennoù), da vezañ implijet e programmoù all[17]. Disklaeriet e vez doare pep lodenn er restr go.mod, a c’hell bezañ produet gant ar c’hompiler. Pa vez kompilet ur program e vez pellkarget al lodennoù diwar ar genrouedad ma ’z eus ezhomm.
Furmader
kemmañGant gofmt e c’heller feurmatañ ur restr Go, da lavarout eo, lakaat anezhi en ur stumm standard hep cheñch ster ar program[18]. A-drugarez d’e reolennoù strizh, e kontrol d’al lodenn vrasañ eus ar lavarioù programmiñ all, n’eus ket da dabutal diwar-benn stumm ar c’hod.
Testoù unanel
kemmañE touesk ar binvioù standard e kaver go test, a bourchas pep tra evit ober testoù unanel[19]. Gallout a ra go tost peurgas an holl testoù ha diskouez ar feur goloadurezh. Tu zo ivez ober bankoù test evit muzuliañ barregezh an isprogrammoù.
Teuliadur
kemmañGallout a reer skrivañ notennoù ispisial e kod ar program, da vezañ tretet gant godoc[20]. Produiñ a ra godoc pajennoù HTML a c’heller lenn en ur merdeer. Implijet eo, da skouer, evit skrivañ teuliadur levraoueg standard Go hag ar servijer godoc.org[21].
Endroioù diorren evit Go
kemmañDaoust ma n’eus endro diorren ofisiel ebet, meur a hini a zo implijet gant kalz programmerien. Hervez sontadeg ar skipailh Go[22] e implij al lodenn brasañ anezho Visual Studio Code, heuliet gant Goland (diazezet war IntelliJ), Vim, Emacs, Sublime Text, Atom ha Visual Studio.
Meziantoù skrivet e Go
kemmañMeur a veziant savet gant tud Google a zo skrivet e Go, da skouer servijer pellkargañ dl.google.com[23]. Kalz meziantoù all a zo skrivet e Go ivez, sed amañ un nebeud skouerioù:
Liammoù diavaez
kemmañ- Lec’hienn ofisiel
- Poull-traezh Go, e lec’h ma c’heller skrivañ programmoù war eeun en ur merdeer.
Daveoù
kemmañ- ↑ Go FAQ — Go or Golang?
- ↑ 2,0 ha2,1 Go FAQ — What is the history of the project?
- ↑ Go FAQ — What is the purpose of the project?
- ↑ Release history
- ↑ Go 1 and the Future of Go Programs
- ↑ The Go Gopher — The Go Blog
- ↑ https://golang.org/doc/faq#unicode_identifiers
- ↑ Go FAQ — Why do garbage collection? Won't it be too expensive?
- ↑ Go FAQ — Types
- ↑ A Tour of Go — Goroutines
- ↑ A Tour of Go — Channels
- ↑ Go FAQ — What compiler technology is used to build the compilers?
- ↑ TinyGo
- ↑ Go FAQ — Can I stop these complaints about my unused variable/import?
- ↑ Optional environment variables
- ↑ (en) All Systems Are Go: An Interview with Rob Pike, the Co-developer of Google's Go Programming Language.
- ↑ Using Go Modules — The Go Blog
- ↑ gofmt
- ↑ Testing
- ↑ Godoc: documenting Go code
- ↑ godoc.org
- ↑ Sontadeg Go 2018
- ↑ Go FAQ — Is Google using Go internally?
- ↑ Docker and Go: why did we decide to write Docker in Go?
- ↑ What is Kubernetes?
- ↑ What is Hugo