Go
Il comando Go
Ricerca…
introduzione
Il comando go
è un programma a riga di comando che consente la gestione dello sviluppo di Go. Consente di costruire, eseguire e testare il codice, oltre a una serie di altre attività relative a Go.
Vai a correre
go run
eseguirà un programma senza creare un file eseguibile. Principalmente utile per lo sviluppo. run
eseguirà solo pacchetti il cui nome del pacchetto è main .
Per dimostrare, useremo un semplice esempio di Hello World: main.go
:
package main
import fmt
func main() {
fmt.Println("Hello, World!")
}
Esegui senza compilarlo in un file:
go run main.go
Produzione:
Hello, World!
Esegui più file nel pacchetto
Se il pacchetto è principale e suddiviso in più file, uno deve includere gli altri file nel comando di run
:
go run main.go assets.go
Vai a costruire
go build
compilerà un programma in un file eseguibile.
Per dimostrare, useremo un semplice esempio di Hello World: main.go:
package main
import fmt
func main() {
fmt.Println("Hello, World!")
}
Compila il programma:
go build main.go
build
crea un programma eseguibile, in questo caso: main
o main.exe
. È quindi possibile eseguire questo file per vedere l'output Hello, World!
. Puoi anche copiarlo su un sistema simile che non ha installato Go, renderlo eseguibile ed eseguirlo lì.
Specificare OS o Architecture in build:
Puoi specificare quale sistema o architettura costruire compilando env
before build
:
env GOOS=linux go build main.go # builds for Linux
env GOARCH=arm go build main.go # builds for ARM architecture
Costruisci più file
Se il pacchetto è diviso in più file e il nome del pacchetto è main (ovvero non è un pacchetto importable ), è necessario specificare tutti i file da compilare:
go build main.go assets.go # outputs an executable: main
Costruire un pacchetto
Per creare un pacchetto chiamato main
, puoi semplicemente usare:
go build . # outputs an executable with name as the name of enclosing folder
Vai pulito
go clean
pulirà tutti i file temporanei creati durante il richiamo go build
su un programma. Pulirà anche i file rimasti da Makefile.
Vai a Fmt
go fmt
formatterà il codice sorgente di un programma in un modo pulito, idiomatico, di facile lettura e comprensione. Si consiglia di utilizzare go fmt
su qualsiasi sorgente prima di inviarlo per la visualizzazione pubblica o di impegnarsi in un sistema di controllo della versione, per facilitare la lettura.
Per formattare un file:
go fmt main.go
O tutti i file in una directory:
go fmt myProject
Puoi anche usare gofmt -s
( non go fmt
) per tentare di semplificare qualsiasi codice che possa.
gofmt
( not go fmt
) può essere utilizzato anche per il codice refactoring. Comprende Go, quindi è più potente dell'utilizzo di una semplice ricerca e sostituzione. Ad esempio, dato questo programma ( 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")
}
Puoi sostituire il metodo Original
con Refactor
con gofmt
:
gofmt -r 'Original -> Refactor' -d main.go
Quale produrrà la 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")
}
Vai a prendere
go get
scaricare i pacchetti nominati dai percorsi di importazione, insieme alle loro dipendenze. Quindi installa i pacchetti con nome, come "vai su". Get accetta anche i flag di compilazione per controllare l'installazione.
vai a ottenere github.com/maknahar/phonecountry
Quando si estrae un nuovo pacchetto, ottenere crea la directory di destinazione $GOPATH/src/<import-path>
. Se GOPATH contiene più voci, usa il primo. Allo stesso modo, installerà i binari compilati in $GOPATH/bin
.
Durante il check-out o l'aggiornamento di un pacchetto, cerca un ramo o un tag che corrisponda alla versione di Go installata localmente. La regola più importante è che se l'installazione locale sta eseguendo la versione "go1", cerca le ricerche per un ramo o un tag chiamato "go1". Se non esiste una tale versione, recupera la versione più recente del pacchetto.
Quando si usa go get
, il flag -d
lo fa scaricare ma non installa il pacchetto specificato. Il flag -u
consentirà di aggiornare il pacchetto e le sue dipendenze.
Non eseguire mai il check out o aggiornare il codice memorizzato nelle directory del fornitore.
Vai env
go env [var ...]
stampa vai informazioni sull'ambiente.
Di default stampa tutte le informazioni.
$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"
Se uno o più nomi di variabili vengono forniti come argomenti, stampa il valore di ciascuna variabile denominata sulla propria riga.
$go env GOOS GOPATH
darwin
/Users/vikashkv/work