title: Go (lavar programmiñ)
text: 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
  
  Anv 
  
  Anv al lavar a zo Go. Pa ne c’heller ket ober gant ar ger go e vez implijet golang en e lec’h.
  
  Istor 
  
  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. 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.
  
  Degaset e vez div zoare Go pep bloaz, unan e miz C’hwevrer hag unan e miz Eost abaoe Go 1.5. Abaoe Go 1 e rank pep doare bezañ kendere war-grec’h.
  
  Gopher 
  
  Arouez Go eo ur razh-godell (gopher e saozneg) treset gant Renée French. Graet e vez implijerien Go gophers ivez.
  
  Al lavar
  
  Anvioù disklaeriet 
  
  Gallout a reer reiñ anvioù da bep tra gant arouezioù Unicode, da lavarout eo, implijout lizherennoù evel ñ pe ù e anvioù ar variantennoù.
  
  Memor 
  
  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ù.
  
  Tiperezh 
  
  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).
  
  Dastumadoù ha for range 
  
  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 
  
  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.
  
  Kanolioù 
  
  Gant kanolioù e c’haser roadennoù a c’hell bezañ resevet gant prosesusoù all. 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 
  
  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ù
  
  Kompiler 
  
  Abaoe doare 1.5 eo kompiler ofisiel Go skrivet e Go. Kompilerioù all zo: gccgo, diazezet war GCC; gollmv, diazezet war LLVM; TinyGo, 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.
  
  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.
  
  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ù.
  
  Lodennoù 
  
  Abaoe Go 1.11 e c’heller sevel tammoù kod, anvet modules (lodennoù), da vezañ implijet e programmoù all. 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 
  
  Gant gofmt e c’heller feurmatañ ur restr Go, da lavarout eo, lakaat anezhi en ur stumm standard hep cheñch ster ar program. 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 
  
  E touesk ar binvioù standard e kaver go test, a bourchas pep tra evit ober testoù unanel. 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 
  
  Gallout a reer skrivañ notennoù ispisial e kod ar program, da vezañ tretet gant godoc. 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.
  
  Endroioù diorren evit Go 
  
  Daoust ma n’eus endro diorren ofisiel ebet, meur a hini a zo implijet gant kalz programmerien. Hervez sontadeg ar skipailh Go 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 
  
  Meur a veziant savet gant tud Google a zo skrivet e Go, da skouer servijer pellkargañ dl.google.com. Kalz meziantoù all a zo skrivet e Go ivez, sed amañ un nebeud skouerioù:
   Docker
   Kubernetes
   Hugo
  
  Liammoù diavaez 
  
   Lec’hienn ofisiel
   Poull-traezh Go, e lec’h ma c’heller skrivañ programmoù war eeun en ur merdeer.
  
  Daveoù 
  
  Lavarioù programmiñ