From Wikipedia, the free encyclopedia
Go on staatilise tüübisüsteemiga kompileeritav programmeerimiskeel.[1]
See artikkel vajab toimetamist. (Jaanuar 2024) |
Süntaktiliselt sarnaneb Go keelele C, kuid omab veel lisaks mälu turvalisust, prügikogumist, struktuurset tüübisüsteemi ning konkurrentsust. Tegu on avatud lähtekoodiga projektiga.[1]
Keele töötasid välja Robert Griesemer, Rob Pike ja Ken Thompson Google'ist.
Go kutsutakse sageli mitteametlikult ka Golangiks, sest algselt oli Go veebilehe domeeninimi golang.org.[2]
Go keele töötasid välja Google'i arendajad puutudes kokku mitmete probleemidega Google toodete arendamisel. Tänapäeva tarkvaraarendus erineb oluliselt aastakümnetetagusest ajast, mil mitmed tänapäeval levinuimad keeled nagu C++, Java ja Python loodi. Eelkõige kerkisid probleemid üles mitmetuumaliste, võrgupõhiste masinate, suurte koodibaaside ja veebiarenduse tulekuga. Go keel loodi, et teha uutes tingimustes tarkvaraarendus efektiivsemaks ja mugavamaks.[1]
Go loomisel püüti säilitada mitmed n-ö vanade keelte kasulikud küljed:
Keel Go avalikustati 2009. aasta novembris[3] ning versioon 1.0 ilmus 2012. aasta märtsis.[4]
Go on kõige rohkem mõjutatud keelest C, kuid tema loomisel on oluliselt rohkem rõhku pandud lihtsusele ja mugavale kasutamisele.
Näiteks:
int x = 0;
või var x = 0;
asemel on kasutusel x:= 0
.select
lause.Go süntaks on koostatud keele C süntaksi baasil pidades silmas, et kood oleks ülevaatlik ja loetav. Võeti kasutusele kombineeritud deklaratsiooni alguse operaator, mis võimaldab programmeerijal muutuja deklareerimisel jätta täpsustamata muutuja tüüp. See põhimõte on erinev keelest C, kus muutuja deklareerimisel tuleb ka määrata muutuja tüüp, näiteks ujukomaarv, sõne vms. Laused eraldatakse rea lõpetamisega (vajutades enter klahvi) või semikooloniga. Semikooloni kasutamisel saab koondada mitu lauset ühele reale, mis aga ei ole halvema loetavuse tõttu soovitatav.
Go fail koosneb "Hello world" programmi näitel järgenvatest osadest:
package main
import "fmt"
func main() {
fmt.Println("Hello world")
}
main
paketti.import ("fmt")
impordib fmt paketti kuuluvad failid.fmt.Println()
on fmt paketist pärinev funktsioon andmete väljastamiseks.Go põhiversioon sisaldab tööriistu koodi loomiseks, testimiseks ja analüüsimiseks.
go build,
mis kompileerib import
käskudega imporditud koodi koos sõltujatega käivitatavaks koodiksgo test
, üksuse testimiseks ja jõudluse hindmiseksgo fmt
, koodi vormindamiseksgo install
, eraldiseisvate pakettide alla laadimiseks ja installimiseksgo vet
, potentsiaalsete vigade tuvastamiseks koodisgo run
, otsetee koodi käivitamiseksgodoc
, dokumentatsiooni kuvamiseksgorename
, muutujate, funktsioonide turvaliseks ümbernimetamiseksgo mod
, uue mooduli loomiseks, sõltujate lisamiseks või muutmiseksTööriistad hõlmavad ka profileerimis- ja silumistoetust, töökorda seadmist (näiteks prügikoristuspauside jälgimiseks).
Lisaks on veel kolmandate osapoolte loodud tööriistu nagu gocode
, mis võimaldab autocomplete'i mitmetes koodiredaktorites, goimports
, mis automaatselt lisab ja eemaldab pakette, ning errcheck
, mis tuvastab koodi, mis ignoreerib erroreid.
Go on laialdaselt kasutusel tarkvaraarenduses Google'is[8] ja paljudes teistes ettevõtetes ning avatud lähtekoodiga projektides, nagu näiteks:
Go negatiivsete külgedena on toodud välja järgmist.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.