Sök…


Introduktion

go kommandot är ett kommandoradsprogram som gör det möjligt att hantera Go-utvecklingen. Det gör det möjligt att bygga, köra och testa kod samt en mängd andra Go-relaterade uppgifter.

Gå kör

go run kör ett program utan att skapa en körbar fil. Mest användbar för utveckling. run endast paket vars paketnamn är huvudsakligt .

För att demonstrera kommer vi att använda ett enkelt Hello World-exempel main.go :

package main

import fmt

func main() {
    fmt.Println("Hello, World!")
}

Kör utan att sammanställa till en fil:

go run main.go

Produktion:

Hello, World!

Kör flera filer i paketet

Om paketet är huvud och delas upp i flera filer måste man inkludera andra filer i run kommando:

go run main.go assets.go

Gå bygg

go build kommer att sammanställa ett program till en körbar fil.

För att demonstrera kommer vi att använda ett enkelt Hello World-exempel main.go:

package main

import fmt
    
func main() {
    fmt.Println("Hello, World!")
}

Kompilera programmet:

go build main.go

build skapar ett körbart program, i detta fall: main eller main.exe . Du kan sedan köra den här filen för att se utgången Hello, World! . Du kan också kopiera det till ett liknande system som inte har Go installerat, göra det körbart och köra det där.

Ange operativsystem eller arkitektur i build:

Du kan ange vilket system eller arkitektur som ska byggas genom att ändra env innan build :

env GOOS=linux go build main.go # builds for Linux
env GOARCH=arm go build main.go # builds for ARM architecture

Bygg flera filer

Om ditt paket delas upp i flera filer och paketnamnet är huvudsakligt (det vill säga att det inte är ett importerbart paket ), måste du ange alla filer som ska byggas:

go build main.go assets.go # outputs an executable: main

Bygga ett paket

För att bygga ett paket som heter main kan du helt enkelt använda:

go build . # outputs an executable with name as the name of enclosing folder

Gå ren

go clean kommer att rensa upp alla tillfälliga filer som skapas när man åberopar go build på ett program. Det kommer också att rensa filer kvar från Makefiles.

Gå Fmt

go fmt kommer att formatera programmets källkod på ett snyggt, idiomatiskt sätt som är lätt att läsa och förstå. Det rekommenderas att du använder go fmt på valfri källa innan du skickar in den för offentligt visning eller kommit till ett versionskontrollsystem för att underlätta läsningen.

Så här formaterar du en fil:

go fmt main.go

Eller alla filer i en katalog:

go fmt myProject

Du kan också använda gofmt -s ( inte go fmt ) för att försöka förenkla den kod som den kan.

gofmt ( not go fmt ) kan också användas för att refaktorkod. Det förstår Go, så det är kraftfullare än att använda en enkel sökning och ersättare. Med tanke på detta program ( main.go ) till exempel:

package main

type Example struct {
    Name string
}

func (e *Example) Original(name string) {
    e.Name = name
}

func main() {
    e := &Example{"Hello"}
    e.Original("Goodbye")
}

Du kan ersätta metoden Original med Refactor med gofmt :

gofmt -r 'Original -> Refactor' -d main.go

Vilket producerar diff:

-func (e *Example) Original(name string) {
+func (e *Example) Refactor(name string) {
     e.Name = name
 }
 
 func main() {
     e := &Example{"Hello"}
-    e.Original("Goodbye")
+    e.Refactor("Goodbye")
 }

Att få

go get ladda ner paketen som namnges av importvägarna, tillsammans med deras beroenden. Den installerar sedan de nämnda paketen, som "gå installera". Get accepterar också att bygga flaggor för att kontrollera installationen.

gå och få github.com/maknahar/phonecountry

När du checkar ut ett nytt paket skapar du $GOPATH/src/<import-path> . Om GOPATH innehåller flera poster använder du den första. På liknande sätt kommer det att installera sammanställda binärer i $GOPATH/bin .

När du checkar ut eller uppdaterar ett paket, leta efter en gren eller tagg som matchar den lokalt installerade versionen av Go. Den viktigaste regeln är att om den lokala installationen kör version "go1", kan du söka efter en gren eller tagg med namnet "go1". Om ingen sådan version finns hämtar den den senaste versionen av paketet.

När du använder go get orsakar flaggan -d den laddar ner men inte installerar det givna paketet. Flaggan -u tillåter den att uppdatera paketet och dess beroenden.

Få aldrig checkar eller uppdaterar koden lagrad i leverantörskataloger.

Gå env

go env [var ...] skriver ut miljöinformation.

Som standard skrivs ut all information.

$go env

GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/vikashkv/work"
GORACE=""
GOROOT="/usr/local/Cellar/go/1.7.4_1/libexec"
GOTOOLDIR="/usr/local/Cellar/go/1.7.4_1/libexec/pkg/tool/darwin_amd64"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/xf/t3j24fjd2b7bv8c9gdr_0mj80000gn/T/go-build785167995=/tmp/go-build -gno-record-gcc-switches -fno-common"
CXX="clang++"
CGO_ENABLED="1"

Om ett eller flera variabla namn anges som argument skriver det ut värdet på varje namngivna variabel på sin egen rad.

$go env GOOS GOPATH

darwin
/Users/vikashkv/work


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow