Pojdi na vsebino

Go (programski jezik)

Iz Wikipedije, proste enciklopedije
Go
Paradigmamultiparadigmatična: sočasna imperativna, funkcionalna[1] objektno usmirjena[2][3]
Začetna izdaja10. november 2009 (2009-11-10)
Oblikoval
RazvijalecThe Go Authors[5]
Stabilna izdaja

Upodobitev lastnosti software version identifier je spodletela: Lastnosti software version identifier ni mogoče najti.

(single (single))
Tipizacijasklepalna, statična, močna,[6] struktrualna,[7][8] nominalna
Večje implementacijegc, gofrontend
Vplivi

Upodobitev lastnosti influenced by je spodletela: Lastnosti influenced by ni mogoče najti.

Vplival naCrystal, V
Programski jezikGo, zbirni jezik (gc); C++ (gofrontend)
OSDragonFly BSD, FreeBSD, Linux, macOS, NetBSD, OpenBSD,[9] Plan 9,[10] Solaris, MS Windows
Licencatročlena BSD + podelitev patenta[11]
Običajna končnica datoteke.go
Spletna strango.dev
Maskota programskega jezika Go Gopher

Go je programski jezik, ki ga je razvil Google leta 2007. Avtorji jezika so Robert Griesemer, Rob Pike in Ken Thompson. Programski jezik se prevede s prevajalnikom, kot npr. C ali C++. Programski jezik ima tudi svoj »garbage collector«, ki poskrbi za čiščenje pomnilnika.[12]

Go je postal javen odprtokodni projekt 10. novembra 2009. Po nekaj letih razvijanja je bila 28. marca 2012 izdana prva stabilna različica, imenovana Go 1.[13] Avtor maskote in logotipa je Renée French. Maskota je pod licenco Creative Commons Attribution 3.0.[14]

Osnovne značilnosti jezika

[uredi | uredi kodo]

Go poskuša kombinirati razvoj in hitrost delovanja v dinamičnem programskem jeziku, kakršen je Python, z zmogljivostjo in varnostjo prevajanih jezikov, kot sta C ali C++. Velike datoteke se prevedejo v le nekaj sekundah in prevedena koda se izvaja skoraj tako hitro kot v jeziku C.[15]

Go ni tipičen objektno usmerjen programski jezik. Čeprav dovoljuje objektno usmerjeni slog programiranja, ne pozna hierarhičnih tipov razredov. Koncept vmestnika ima drugačen pristop, ki naj bi bil lahek za uporabo in bolj splošen. Zaradi nehierarhičnosti so objekti veliko bolj vsestranski kot v jezikih, kot je java.[16] Da bi bil jezik bolj preprost, so nekatere komponente (dedovanje razredov, trditve (assertions), generično programiranje) namenoma izključene.[17]

Programska koda jezika Go je sestavljena iz:[17]

  • deklaracije in uvoza paketov
  • funkcij
  • spremenljivk
  • izjav in izrazov
  • komentarjev
package main

import "fmt"

const pi = 3.14159
const smesko = ":-)"

func main() {
   const svet = "世界"
   fmt.Println("Pozdravljen,", svet)
   fmt.Println("Srečen", "Dan", pi, "!")
   const resnica = "Resnično."
   fmt.Println("Go raztura, kajne?", resnica, smesko) 
}

Zgled programa Fibonaccijeva števila

[uredi | uredi kodo]
package main

import "fmt"

// fib vrne funkcijo, ki vrne Fibonnacijeva števila
func fib() func() int {
   a, b := 0, 1
   return func() int {
      a, b = b, a + b
         return a
   }
}

func main() {
   f := fib()
   // funkcijski klici se izvršujejo z leve proti desni
   fmt.Println(f(), f(), f(), f(), f())
}

Sklici

[uredi | uredi kodo]
  1. Codewalk: First-Class Functions in Go (v angleščini), Go podpira prvorazredne funkcije, funkcije višjega reda, uporabniško definirane vrste funkcij, funkcijske literale, zaprtja in večkratne vrnjene vrednosti. Ta bogat nabor funkcij podpira funkcionalni programski slog v strogo tipiziranem jeziku.
  2. Is Go an object-oriented language? (v angleščini), pridobljeno 13. aprila 2019, Čeprav ima Go tipe in metode ter omogoča objektno usmerjeni slog programiranja, ni hierarhije tipov.
  3. Go: code that grows with grace (v angleščini), pridobljeno 24. junija 2018, Go je objektno usmerjen, vendar ne na običajen način.
  4. »Language Design FAQ«, The Go Programming Language (v ameriški angleščini), 16. januar 2010, pridobljeno 27. februarja 2010
  5. »Text file LICENSE«, The Go Programming Language (v angleščini), pridobljeno 5. oktobra 2012
  6. The Go Programming Language Specification - the Go Programming Language (v angleščini)
  7. »Why doesn't Go have "implements" declarations?«, The Go Programming Language (v angleščini), pridobljeno 1. oktobra 2015
  8. Pike (2014).
  9. »lang/go: go-1.4«, OpenBSD ports (v angleščini), 23. december 2014, pridobljeno 19. januarja 2015
  10. »Go Porting Efforts«, Go Language Resources (v angleščini), cat-v, 12. januar 2010, pridobljeno 18. januarja 2010
  11. »Additional IP Rights Grant«, The Go Programming Language (v angleščini), pridobljeno 5. oktobra 2012
  12. The Go Programming Language History (v angleščini), Golang.org, pridobljeno 22. decembra 2015
  13. The Go Programming Language What is the status of the project? (v angleščini), Golang.org, pridobljeno 22. decembra 2015
  14. The Go Programming Language What is the origin of the mascot? (v angleščini), Golang.org, pridobljeno 22. decembra 2015
  15. Google's Go: A New Programming Language That's Python Meets C++ (v angleščini), techcrunch.com, pridobljeno 22. decembra 2015
  16. The Go Programming Language Is Go an object-oriented-language (v angleščini), Golang.org, pridobljeno 22. decembra 2015
  17. 17,0 17,1 What's the Go language really good for? (v angleščini), javaworld.com, arhivirano iz prvotnega spletišča dne 22. decembra 2015, pridobljeno 22. decembra 2015