Suche…


Einführung

Der Befehl go ist ein Befehlszeilenprogramm, mit dem die Go-Entwicklung verwaltet werden kann. Es ermöglicht das Erstellen, Ausführen und Testen von Code sowie eine Vielzahl anderer Aufgaben im Zusammenhang mit Go.

Geh Rennen

go run wird ein Programm ausgeführt, ohne eine ausführbare Datei zu erstellen. Meist nützlich für die Entwicklung. run führt nur Pakete aus, deren Paketname main ist .

Um dies zu demonstrieren, verwenden wir ein einfaches Hello World-Beispiel main.go :

package main

import fmt

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

Ausführen ohne zu einer Datei zu kompilieren:

go run main.go

Ausgabe:

Hello, World!

Führen Sie mehrere Dateien im Paket aus

Wenn das Paket main ist und in mehrere Dateien aufgeteilt ist, müssen die anderen Dateien in den run :

go run main.go assets.go

Bauen Sie auf

go build kompiliert ein Programm in eine ausführbare Datei.

Um dies zu demonstrieren, verwenden wir ein einfaches Hello World-Beispiel main.go:

package main

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

Kompilieren Sie das Programm:

go build main.go

build erstellt ein ausführbares Programm, in diesem Fall: main oder main.exe . Sie können diese Datei dann ausführen, um die Ausgabe zu sehen. Hello, World! . Sie können es auch auf ein ähnliches System kopieren, auf dem Go nicht installiert ist , es ausführbar machen und dort ausführen.

Geben Sie das Betriebssystem oder die Architektur im Build an:

Sie können angeben, welches System oder welche Architektur erstellt werden soll, indem Sie die env vor dem build env :

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

Erstellen Sie mehrere Dateien

Wenn Ihr Paket in mehrere Dateien aufgeteilt ist und der Paketname main lautet ( dh es handelt sich nicht um ein importierbares Paket ), müssen Sie alle zu erstellenden Dateien angeben:

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

Paket erstellen

Um ein Paket namens main erstellen, können Sie einfach Folgendes verwenden:

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

Gehen Sie sauber

go clean bereinigt alle temporären Dateien, die beim Aufruf von go build auf einem Programm erstellt wurden. Es werden auch Dateien gelöscht, die von Makefiles übrig sind.

Go Fmt

go fmt formatiert den Quellcode eines Programms auf eine übersichtliche, idiomatische Weise, die leicht zu lesen und zu verstehen ist. Es wird empfohlen, dass Sie go fmt für jede Quelle verwenden, bevor Sie es zur öffentlichen Anzeige einreichen oder in ein Versionskontrollsystem einbinden.

So formatieren Sie eine Datei:

go fmt main.go

Oder alle Dateien in einem Verzeichnis:

go fmt myProject

Sie können auch gofmt -s ( nicht go fmt ) verwenden, um zu versuchen, den möglichen Code zu vereinfachen.

gofmt ( not go fmt ) kann auch zum Refactor-Code verwendet werden. Es versteht Go und ist daher mächtiger als das einfache Suchen und Ersetzen. Zum Beispiel bei diesem Programm ( main.go ):

package main

type Example struct {
    Name string
}

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

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

Sie können die Methode Original durch Refactor durch gofmt :

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

Welches wird den Unterschied erzeugen:

-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")
 }

Geh holen

go get die mit den Importpfaden benannten Pakete zusammen mit ihren Abhängigkeiten heruntergeladen. Dann werden die benannten Pakete wie "go install" installiert. Get akzeptiert auch Build-Flags, um die Installation zu steuern.

Gehen Sie auf github.com/maknahar/phonecountry

Beim Auschecken eines neuen Pakets erstellt get das Zielverzeichnis $GOPATH/src/<import-path> . Wenn der GOPATH mehrere Einträge enthält, verwendet get den ersten. Ebenso werden kompilierte Binärdateien in $GOPATH/bin installiert.

Beim Auschecken oder Aktualisieren eines Pakets sollten Sie nach einem Zweig oder Tag suchen, der der lokal installierten Version von Go entspricht. Die wichtigste Regel ist, dass bei einer lokalen Installation der Version "go1" nach einem Zweig oder Tag mit dem Namen "go1" gesucht wird. Wenn keine solche Version vorhanden ist, wird die neueste Version des Pakets abgerufen.

Wenn Sie go get , bewirkt das Flag -d dass das angegebene Paket heruntergeladen, jedoch nicht installiert wird. Mit der -u das Paket und seine Abhängigkeiten aktualisiert werden.

Holen Sie sich nie auschecken oder aktualisieren Sie Code, der in Anbieterverzeichnissen gespeichert ist.

Geh env

go env [var ...] druckt go-Umgebungsinformationen.

Standardmäßig werden alle Informationen gedruckt.

$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"

Wenn ein oder mehrere Variablennamen als Argumente angegeben sind, wird der Wert jeder benannten Variablen in einer eigenen Zeile ausgegeben.

$go env GOOS GOPATH

darwin
/Users/vikashkv/work


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow