Go
Komenda Go
Szukaj…
Wprowadzenie
Polecenie go
to program wiersza polecenia, który umożliwia zarządzanie rozwojem Go. Umożliwia budowanie, uruchamianie i testowanie kodu, a także szereg innych zadań związanych z Go.
Iść biegać
go run
program bez tworzenia pliku wykonywalnego. Głównie przydatne do rozwoju. run
tylko pakiety, których nazwa pakietu jest główna .
Aby to zademonstrować, użyjemy prostego przykładu Hello World main.go
:
package main
import fmt
func main() {
fmt.Println("Hello, World!")
}
Wykonaj bez kompilacji do pliku:
go run main.go
Wynik:
Hello, World!
Uruchom wiele plików w pakiecie
Jeśli pakiet jest główny i podzielony na wiele plików, należy dołączyć inne pliki do polecenia run
:
go run main.go assets.go
Idź budować
go build
skompiluje program do pliku wykonywalnego.
Aby to zademonstrować, użyjemy prostego przykładu Hello World main.go:
package main
import fmt
func main() {
fmt.Println("Hello, World!")
}
Skompiluj program:
go build main.go
build
tworzy program wykonywalny, w tym przypadku: main
lub main.exe
. Następnie możesz uruchomić ten plik, aby zobaczyć wynik Hello, World!
. Możesz także skopiować go do podobnego systemu, w którym nie ma zainstalowanego Go, ustawić go jako wykonywalny i uruchomić tam.
Podaj system operacyjny lub architekturę w kompilacji:
Możesz określić, który system lub architekturę zbudować, modyfikując env
przed build
:
env GOOS=linux go build main.go # builds for Linux
env GOARCH=arm go build main.go # builds for ARM architecture
Zbuduj wiele plików
Jeśli Twój pakiet jest podzielony na wiele plików, a nazwa pakietu jest główna (to znaczy, że nie jest to pakiet do importowania ), musisz określić wszystkie pliki do zbudowania:
go build main.go assets.go # outputs an executable: main
Budowanie pakietu
Aby zbudować pakiet o nazwie main
, możesz po prostu użyć:
go build . # outputs an executable with name as the name of enclosing folder
Idź czysty
go clean
wyczyści wszystkie pliki tymczasowe utworzone podczas wywoływania go build
w programie. Oczyści również pliki pozostałe z Makefiles.
Idź Fmt
go fmt
sformatuje kod źródłowy programu w zgrabny, idiomatyczny sposób, który jest łatwy do odczytania i zrozumienia. Zaleca się użycie go fmt
na dowolnym źródle przed przesłaniem go do publicznego oglądania lub zatwierdzeniem w systemie kontroli wersji, aby ułatwić czytanie.
Aby sformatować plik:
go fmt main.go
Lub wszystkie pliki w katalogu:
go fmt myProject
Możesz także użyć gofmt -s
( nie go fmt
), aby uprościć dowolny kod, który może.
gofmt
( nie go fmt
) może być również użyty do refaktoryzacji kodu. Rozumie Go, więc jest potężniejszy niż proste wyszukiwanie i zamiana. Na przykład, biorąc pod uwagę ten program ( 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")
}
Możesz zamienić metodę Original
Refactor
gofmt
:
gofmt -r 'Original -> Refactor' -d main.go
Który wytworzy 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")
}
Idź Zdobądź
go get
pobiera pakietów nazwanych przez ścieżkach importowych wraz z ich zależnościami. Następnie instaluje nazwane pakiety, takie jak „go install”. Get akceptuje również flagi kompilacji do kontrolowania instalacji.
przejdź na github.com/maknahar/phonecountry
Podczas sprawdzania nowego pakietu get tworzy katalog docelowy $GOPATH/src/<import-path>
. Jeśli GOPATH zawiera wiele wpisów, get używa pierwszego. Podobnie, zainstaluje skompilowane pliki binarne w $GOPATH/bin
.
Podczas sprawdzania lub aktualizowania pakietu, szukaj oddziału lub znacznika, który pasuje do lokalnie zainstalowanej wersji Go. Najważniejszą zasadą jest to, że jeśli w instalacji lokalnej jest uruchomiona wersja „go1”, należy wyszukać gałąź lub tag o nazwie „go1”. Jeśli taka wersja nie istnieje, pobiera najnowszą wersję pakietu.
Podczas korzystania z funkcji go get
flaga -d
powoduje pobranie, ale nie zainstalowanie danego pakietu. Opcja -u
pozwoli zaktualizować pakiet i jego zależności.
Nigdy nie pobieraj ani nie aktualizuj kodu przechowywanego w katalogach dostawców.
Idź środowisko
go env [var ...]
drukuje informacje o środowisku go.
Domyślnie drukuje wszystkie informacje.
$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"
Jeśli jedna lub więcej nazw zmiennych podano jako argumenty, wypisuje wartość każdej nazwanej zmiennej w swoim własnym wierszu.
$go env GOOS GOPATH
darwin
/Users/vikashkv/work