## 依赖与模块管理 | 命令 | 作用 | 示例 | | ----------------- | ---------------------------------------- | ---------------------------------------- | | `go mod init` | 初始化一个新模块(生成 go.mod) | `go mod init myapp` | | `go mod tidy` | 自动添加缺失的依赖、删除未使用的依赖 | `go mod tidy` | | `go get` | 为当前模块添加/升级/降级依赖 | `go get github.com/gin-gonic/gin@v1.9.0` | | `go mod download` | 预下载 go.mod 中声明的所有依赖到本地缓存 | `go mod download` | | `go mod vendor` | 将依赖复制到 vendor 目录(离线构建用) | `go mod vendor` | | `go list` | 列出包或模块信息 | `go list -m all`(查看所有依赖版本) | ## 运行与安装 | 命令 | 作用 | 示例 | | :----------- | :---------------------------------- | :----------------------------------- | | `go run` | 编译并直接运行程序(适合调试) | `go run .` | | `go install` | 编译并安装到 GOBIN 目录(全局可用) | `go install example.com/tool@latest` | ## 代码质量与格式化 | 命令 | 作用 | 示例 | | :------- | :--------------------------- | :------------- | | `go fmt` | 自动格式化代码,符合官方风格 | `go fmt ./...` | | `go vet` | 静态检查代码中潜在的错误 | `go vet ./...` | | `go fix` | 自动把旧版 API 更新为新 API | `go fix ./...` | ## 查看信息 | 命令 | 作用 | 示例 | | :----------- | :--------------------- | :------------------------------------- | | `go doc` | 查看包或函数的文档 | `go doc fmt.Println` | | `go env` | 查看/修改 Go 环境配置 | `go env -w GOPROXY=https://goproxy.cn` | | `go version` | 查看当前 Go 版本 | `go version` | | `go help` | 查看某个命令的详细帮助 | `go help build` | ## 其他进阶命令 | 命令 | 作用 | 说明 | | :------------ | :---------------------------------------------- | :------------------------------------------------------- | | `go clean` | 清除缓存和编译产物 | `go clean -cache`、`go clean -modcache` | | `go generate` | 运行源代码中的 `//go:generate` 指令自动生成代码 | 常用于生成代码模板 | | `go tool` | 调用 Go 自带工具 | `go tool pprof`(性能分析)、`go tool trace`(协程跟踪) | | `go work` | 多模块工作区管理 | `go work init`、`go work use ./xxx` | | `go bug` | 打开浏览器提交 bug 报告 | 会自动附带系统信息 | ## 交叉编译 ### 基本用法 ```bash # Linux/macOS GOOS=目标系统 GOARCH=目标架构 go build -o 输出文件名 源文件 # Windows (PowerShell) $env:GOOS="目标系统"; $env:GOARCH="目标架构"; go build -o 输出文件名 源文件 # Windows (CMD) set GOOS=目标系统 && set GOARCH=目标架构 && go build -o 输出文件名 源文件 ``` 查看所有支持的平台 ```bash go tool dist list ``` ### 常用组合 | 目标平台 | GOOS | GOARCH | | ------------ | ------- | ------ | | Linux 64位 | linux | amd64 | | Linux ARM64 | linux | arm64 | | Windows 64位 | windows | amd64 | | macOS Intel | darwin | amd64 | | macOS M1/M2 | darwin | arm64 | ### 示例 ```bash # Linux/Mac (Bash) # 编译 Linux 64位 GOOS=linux GOARCH=amd64 go build -o app ./app/api/main.go # 编译 Windows 64位 GOOS=windows GOARCH=amd64 go build -o app.exe ./app/api/main.go # 编译 macOS ARM64 (M1/M2) GOOS=darwin GOARCH=arm64 go build -o app ./app/api/main.go # Windows (PowerShell) # 编译 Linux 64位 $env:GOOS="linux"; $env:GOARCH="amd64"; go build -o app ./app/api/main.go # 编译 Windows 64位 $env:GOOS="windows"; $env:GOARCH="amd64"; go build -o app.exe ./app/api/main.go # 编译 macOS ARM64 (M1/M2) $env:GOOS="darwin"; $env:GOARCH="arm64"; go build -o app ./app/api/main.go ```