GoAan de slag met Go


Opmerkingen

Go is een open-source, gecompileerde, statisch getypte taal in de traditie van Algol en C. Het beschikt over functies zoals het verzamelen van afval, beperkt structureel typen, geheugenveiligheidsfuncties en eenvoudig te gebruiken CSP- achtige gelijktijdige programmering.

versies

De nieuwste versie van de belangrijkste versie is hieronder vetgedrukt . Geschiedenis volledige release kan worden gevonden hier .

Versie Publicatiedatum
1.8.3 2017/05/24
1.8.0 2017/02/16
1.7.0 2016/08/15
1.6.0 2016/02/17
1.5.0 2015/08/19
1.4.0 2014/12/04
1.3.0 2014/06/18
1.2.0 2013/12/01
1.1.0 2013/05/13
1.0.0 2012-03-28

Omgeving instellen

Als Go niet vooraf op uw systeem is geïnstalleerd, kunt u naar https://golang.org/dl/ gaan en uw platform kiezen om Go te downloaden en te installeren.

Om een basis Go-ontwikkelomgeving in te stellen, moeten slechts enkele van de vele omgevingsvariabelen die het gedrag van de go tool beïnvloeden (zie: Lijst met omgevingsvariabelen voor een volledige lijst) worden ingesteld (meestal in het ~/.profile uw shell bestand of equivalent op Unix-achtige besturingssystemen).

GOPATH

Net als de omgevingsvariabele PATH het systeem, is Go path een : ( ; op Windows) gescheiden lijst met mappen waarin Go naar pakketten zoekt. De tool go get downloadt ook pakketten naar de eerste map in deze lijst.

De GOPATH is waar Go wil setup geassocieerd bin , pkg , en src mappen die nodig zijn voor de werkruimte:

  • src - locatie van bronbestanden: .go , .c , .g , .s
  • pkg - heeft .a bestanden gecompileerd
  • bin - bevat uitvoerbare bestanden gebouwd door Go

Vanaf Go 1.8 heeft de omgevingsvariabele GOPATH een standaardwaarde als deze niet is ingesteld. Het is standaard $ HOME / go op Unix / Linux en% USERPROFILE% / go op Windows.

Sommige tools gaan ervan uit dat GOPATH een enkele map zal bevatten.

GOBIN

De bin directory waar go install en go get zullen binaries te plaatsen na de bouw van main pakketten. Over het algemeen is dit ingesteld op ergens op het systeem PATH zodat geïnstalleerde binaries gemakkelijk kunnen worden uitgevoerd en ontdekt.

GOROOT

Dit is de locatie van uw Go-installatie. Het wordt gebruikt om de standaardbibliotheken te vinden. Het is zeer zeldzaam om deze variabele in te stellen omdat Go het buildpad in de toolchain insluit. Het instellen van GOROOT is nodig als de installatiemap verschilt van de GOROOT (of de waarde die is ingesteld tijdens het bouwen).

Offline toegang tot documentatie

Voer voor de volledige documentatie de opdracht uit:

godoc -http=:<port-number>
 

Voor een rondleiding door Go (ten zeerste aanbevolen voor beginners in de taal):

go tool tour
 

De twee bovenstaande opdrachten start web-servers met documentatie vergelijkbaar met wat online hebben gevonden hier en hier respectievelijk.

Voor snelle referentiecontrole vanaf de opdrachtregel, bijv. Voor fmt.

godoc cmd/fmt Print
# or
go doc fmt Print
 

Algemene hulp is ook beschikbaar via de opdrachtregel:

go help [command]
 

FizzBuzz

Een ander voorbeeld van programma's in de stijl van "Hello World" is FizzBuzz . Dit is een voorbeeld van een FizzBuzz-implementatie. Zeer idiomatisch Speel hier.

package main

// Simple fizzbuzz implementation

import "fmt"

func main() {
    for i := 1; i <= 100; i++ {
        s := ""       
        if i % 3 == 0 {
            s += "Fizz"
        }
        if i % 5 == 0 {
            s += "Buzz"
        }
        if s != "" {
            fmt.Println(s) 
        } else {
            fmt.Println(i) 
        }
    }
}
 

Speelplaats

Hallo Wereld!

Plaats de volgende code in een bestandsnaam hello.go :

package main

import "fmt"

func main() {
    fmt.Println("Hello, 世界")
}
 

Speelplaats

Wanneer Go correct is geïnstalleerd, kan dit programma als volgt worden gecompileerd en uitgevoerd:

go run hello.go
 

Output:

Hello, 世界
 

Als u tevreden bent met de code, kan deze worden gecompileerd tot een uitvoerbaar bestand door het uitvoeren van:

go build hello.go
 

Hiermee maakt u een uitvoerbaar bestand dat geschikt is voor uw besturingssysteem in de huidige map, dat u vervolgens kunt uitvoeren met de volgende opdracht:

Linux, OSX en andere Unix-achtige systemen

./hello
 

ramen

hello.exe
 

Opmerking : de Chinese tekens zijn belangrijk omdat ze aantonen dat Go-reeksen worden opgeslagen als alleen-lezen segmenten van bytes.

Listing Go Environment Variables

Omgevingsvariabelen die van invloed zijn op de go tool kunnen worden bekeken via de opdracht go env [var ...] :

$ go env
GOARCH="amd64"
GOBIN="/home/yourname/bin"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/yourname"
GORACE=""
GOROOT="/usr/lib/go"
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build059426571=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"
 

Standaard wordt de lijst afgedrukt als een shellscript; als een of meer variabelenamen als argumenten worden gegeven, wordt echter de waarde van elke benoemde variabele afgedrukt.

$go env GOOS GOPATH
linux
/home/yourname
 

Running Ga online

The Go Playground

Een weinig bekende Go-tool is The Go Playground . Als iemand met Go wil experimenteren zonder het te downloaden, kan dat eenvoudig door eenvoudig te doen. . .

  1. De Playground bezoeken in hun webbrowser
  2. Voer hun code in
  3. Klik op "Uitvoeren"

Uw code delen

De Go Playground heeft ook tools om te delen; als een gebruiker op de knop 'Delen' drukt, wordt een link (zoals deze ) gegenereerd die naar andere mensen kan worden verzonden om te testen en te bewerken.

In actie

De Go Playground in actie