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