Go
Go-kommandot
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