A Go szintaxisa a C nyelvéhez áll közel, a típusdeklaráció kivételével; az egyéb szintaktikai eltérések közé tartoznak a for ciklus és a feltételes kifejezés (if) hiányzó zárójelei. A nyelv támogatja a szemétgyűjtést. A Go konkurenciamodellje Tony HoareCSP-jén alapszik. A kihagyott funkciók közé tartozik a kivételkezelés, az öröklődés, a generikus programozás és a metódusok újradefiniálása (method overriding). A Javától és a C++-tól eltérően a map-ek (asszociatív tömbök) beépített nyelvi elemek, éppúgy mint a stringek.
Problémák a névvel
A Google által a nyelv nevének választott „Go” ütközik a F. G. McCabe és K. L. Clark által 2004-ben kifejlesztett programozási nyelv, a Go! nevével.[6] A problémáról szó van a Google Go-oldalain, jelenleg a legnépszerűbb ötlet az, hogy a Google nyelvét át kellene nevezni „Issue 9”-re.[6]
packagemainimport("os";"flag";// parancssori opciók elemzésére)varomitNewline=flag.Bool("n",false,"don't print final newline")const(Space=" ";Newline="\n";)funcmain(){flag.Parse();// az argumentumok listáját végignézi és beállítja a flageketvarsstring="";fori:=0;i<flag.NArg();i++{ifi>0{s+=Space}s+=flag.Arg(i)}if!*omitNewline{s+=Newline}os.Stdout.WriteString(s);}
FizzBuzz teszt
packagemain//csomag neve//Függőségekimport("fmt"//Parancssori kiíráshoz...)//A program futása a main-ban kezdődikfuncmain(){fori:=1;i<100;i++{// 1-től 100-ig for ciklusfizz:=((i%3)==0)//osztható-e 3-malbuzz:=((i%5)==0)//osztható-e 5-teliffizz&&buzz{// Ha mindkettővel: fizzbuzzfmt.Println("FizzBuzz")}elseiffizz{//ha csak 3-mal Fizzfmt.Println("Fizz")}elseifbuzz{//ha csak 5-tel Buzzfmt.Println("Buzz")}else{//Egyébként a szám magafmt.Println(i)}}}
Ez a szócikk részben vagy egészben a Go (programming language) című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.