CLI 指令

Go CLI 指令快速參考。

版本 & 環境

指令說明
go version顯示 Go 版本
go env顯示 Go 環境變數
go env -w KEY=VALUE設定環境變數(如 GO111MODULE=on

模組管理 (Go Modules)

指令說明
go mod init <module-name>建立新模組
go mod tidy新增/移除需要的依賴
go mod download下載模組依賴
go mod vendor建立 vendor/ 目錄
go list -m all列出所有模組
go get <pkg>安裝/更新套件
go install <pkg>@version安裝特定版本的可執行檔

建置 & 執行

指令說明
go run main.go編譯並執行程式
go build編譯目前模組(產生二進制檔)
go build -o app編譯並輸出為 app
go install編譯並安裝到 $GOPATH/bin

測試 & Benchmark

指令說明
go test ./...跑所有測試
go test -v顯示詳細測試結果
go test -run TestFunc只執行特定測試
go test -bench .執行所有 benchmark
go test -cover顯示測試覆蓋率

程式分析

指令說明
go fmt ./...自動格式化程式碼
go vet ./...靜態分析檢查程式碼
golint ./...程式碼風格檢查(需額外安裝)
go tool pprof <binary> <profile>效能分析

文件 & 工具

指令說明
go doc fmt查看 fmt 套件文件
go doc fmt.Println查看函式文件
godoc -http=:6060啟動本地文件伺服器

其他

指令說明
go clean清理編譯產生的檔案
go list ./...列出所有套件
go generate ./...執行程式碼生成工具(依照 //go:generate 標記)

交叉編譯

# 查看環境變數
go env

# 編譯 Linux 64-bit
GOOS=linux GOARCH=amd64 go build -o bin/main main.go

# 編譯 Linux ARM64
GOOS=linux GOARCH=arm64 go build -o bootstrap main.go

# 查看所有支援的架構
go tool dist list | grep linux