Go 1.16+默认启用go mod,无需手动配置GOPATH或固定项目目录;安装后执行go version和go env验证,必须立即配置国内代理如goproxy.cn以解决依赖拉取超时问题。

Go 环境现在基本装完就能用,不需要手动配 GOPATH,也不用把代码塞进特定目录——只要你用的是 Go 1.16+(2026 年默认已是 Go 1.25 或更高),go mod 就是开箱即用的默认模式。
验证安装是否成功:只看 go version 和 go env
打开终端,执行:
go version
应输出类似 go version go1.25.0 darwin/arm64(macOS)、go version go1.25.0 linux/amd64(Linux)或 go version go1.25.0 windows/amd64(Windows)。只要不报 command not found 或 'go' is not recognized,说明二进制已进 PATH。
再运行:
立即学习“go语言免费学习笔记(深入)”;
go env GOPROXY GOMODCACHE GO111MODULE
你会看到:
-
GO111MODULE=on(表示模块模式强制启用,无需手动设) -
GOPROXY通常为https://proxy.golang.org,direct,但国内建议立刻改掉 -
GOMODCACHE是依赖缓存路径,自动生成,不用管
如果 go env 报错或字段为空,大概率是安装后没重启终端,或 Windows 下没勾选「Add to PATH」选项。
快速配置国内代理:别等 go get 卡住再动手
默认的 https://proxy.golang.org 在国内基本超时。改代理不是可选项,是第一步必须做的事。
执行这条命令(任选其一):
go env -w GOPROXY=https://goproxy.cn,direct
或更稳的双备份写法:
go env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct
改完后 go env GOPROXY 应能立刻回显新值。之后所有 go get、go mod download 都会走镜像源,不再卡在 “Fetching” 状态。
注意:direct 保留很重要——它表示对私有模块(如公司内网 Git)跳过代理直连,否则内部包会拉不到。
go run vs go build:什么时候该生成可执行文件
go run 是调试主力,go build 是交付前提,两者行为差异直接影响开发节奏:
-
go run main.go:编译后立即执行,不落地二进制,适合快速验证逻辑 -
go run .:自动找当前目录下main包的所有.go文件,比列全名更省事 -
go build -o myapp ./cmd/myapp:指定输出名和入口目录,生成可分发的二进制(无 .exe 后缀,Linux/macOS 也一样) -
go build(空参数):默认生成名为main的可执行文件,容易覆盖,不推荐
常见错误:go run xxx.go 报 package main must be declared?说明那个文件不是 package main,或者你漏了 func main()。检查第一行是不是 package main,且文件里真有 func main() 函数。
初始化项目与管理依赖:从 go mod init 开始就别碰 GOPATH
新建项目,直接进空目录执行:
go mod init example.com/hello
这会生成 go.mod 文件,内容包含模块路径、Go 版本和空的 require 块。模块路径不一定要真实存在,只是命名空间标识。
之后每次 import 一个外部包(比如 "github.com/gin-gonic/gin"),首次 go run 或 go build 时会自动写入 go.mod 并下载到本地缓存。
关键点:
- 不要手动编辑
go.sum——它是校验和快照,删了会触发重新下载+校验 - 升级依赖用
go get github.com/gin-gonic/gin@v1.9.1,不是npm update那套 - 想清理整个模块缓存?
go clean -modcache,但慎用——下次构建会重下所有依赖
真正容易被忽略的是:模块路径里的域名部分(如 example.com)只是逻辑前缀,和 DNS 无关;但如果你将来要发布到私有仓库,这个路径就得和 Git 地址对齐,否则 go get 会找不到。


















