安装成功后首先运行go version验证,若输出类似go version go1.25.0 linux/amd64则正确;报command not found说明PATH未生效,需重启终端或执行source ~/.zshrc等。

go version 一查就知装没装对
安装完 Go 后第一件事不是写代码,而是验证 go version 是否能正常输出。如果报错 command not found,大概率是 PATH 没生效——Windows 要关掉所有 CMD/PowerShell 窗口重开,Linux/macOS 要确认 source ~/.bashrc 或 source ~/.zshrc 已执行。
成功输出应类似:go version go1.25.0 linux/amd64(版本号以你实际安装为准)。注意末尾的平台标识,比如 windows/amd64 或 darwin/arm64,它直接影响后续交叉编译行为。
go run 是最快验证路径通不通的方式
go run 不生成二进制,只编译并立即执行,适合快速测试。但必须满足两个硬性条件:
- 当前目录下有且仅有一个
main.go文件,或显式指定完整文件路径(如go run main.go utils.go) - 该文件属于
package main,且包含func main()
常见错误:no Go files in current directory —— 检查文件名是否拼错(比如写成 Main.go 或 main.G0),Go 对大小写和扩展名极其敏感;cannot find package "xxx" —— 说明依赖未初始化,先跑 go mod init myproj。
立即学习“go语言免费学习笔记(深入)”;
使用 uber-go/dig 在 Golang 中实现依赖注入——基于反射容器,提供 Provide/Invoke、dig.In/dig.Out 参数与结果对象,支持命名依赖等
go build -o 比默认输出更可控
go build 默认在当前目录生成同名可执行文件(Linux/macOS 无后缀,Windows 是 .exe),容易污染项目目录。用 -o 参数指定输出位置才是生产习惯:
-
go build -o ./bin/app ./cmd/main.go:把cmd目录下的入口编译成bin/app -
go build -o /tmp/myapp .:当前目录构建,输出到临时目录,避免残留 - 跨平台编译需提前设环境变量,例如
GOOS=linux GOARCH=arm64 go build -o app-linux-arm64 .
注意:go build 不会自动下载依赖,如果提示 cannot load xxx: cannot find module,先补 go mod tidy。
GOPROXY 必须配,否则 90% 的依赖拉取会失败
国内直连 proxy.golang.org 基本超时,不配代理几乎无法使用 go get 或 go mod tidy。三行命令永久生效即可:
-
go env -w GO111MODULE=on:强制启用模块模式(Go 1.16+ 默认开启,但旧系统可能关着) -
go env -w GOPROXY=https://goproxy.cn,direct:主代理走七牛云镜像,direct表示找不到时回源官方 -
go env -w GOSUMDB=sum.golang.org:校验依赖完整性,别关,关了会报checksum mismatch
配完用 go env | grep GOPROXY 确认值已写入。如果仍拉包慢,可能是公司内网拦截了 HTTPS,这时得换企业级代理或走私有 Nexus 仓库。
真正容易被忽略的是:go mod 初始化后生成的 go.sum 文件不能删,它记录了每个依赖的哈希值,缺失会导致构建失败或安全校验跳过。哪怕只是临时测试,也建议从 go mod init 开始,而不是裸写 main.go 就跑。

















