go version能正常输出即说明Go环境已配置成功;应下载官方二进制包而非用包管理器安装,避免版本滞后与路径混乱;Go Modules默认启用,无需配置GOPATH或GOROOT;VS Code只需安装官方Go扩展,gopls会自动管理。

go version 能正常输出,就说明环境已搭好——其他所有步骤都是为这个结果服务的,不是仪式。
别用包管理器装 Go,直接下官方二进制包
Homebrew(macOS)、apt(Ubuntu)、choco(Windows)里的 go 版本普遍滞后 1–2 个大版本,且 GOROOT 路径不统一,容易导致 go env -w GOPROXY=... 失效或 gopls 找不到 SDK。
- macOS / Linux:去 go.dev/dl/ 下载
go1.22.5.darwin-arm64.tar.gz或go1.22.5.linux-amd64.tar.gz,解压到/usr/local - Windows:下载
go1.22.5.windows-amd64.msi,双击安装,默认路径C:\Go即可 - 验证命令只有一条:
go version,输出类似go version go1.22.5 darwin/arm64就算成功
不用配 GOPATH,Go Modules 是默认行为
Go 1.16+ 默认开启 GO111MODULE=on,意味着你完全不需要创建 $HOME/go 目录、也不用把项目塞进 $GOPATH/src。老教程里那套 mkdir -p $GOPATH/src/hello 已失效。
- 新建任意目录,比如
~/myfirstgo,执行:go mod init hello - 写个
main.go,内容就一行:package main; import "fmt"; func main() { fmt.Println("hello") } - 运行:
go run main.go—— 成功打印即表示模块系统工作正常 -
go.mod里生成的模块名(如hello)只是本地标识,和域名无关;将来推 GitHub 再改也来得及
VS Code 只装一个插件,别碰 gopls 配置文件
VS Code 官方 Go 扩展(作者:golang)会自动下载并管理 gopls,手动配置 settings.json 里的 go.gopath 或 go.useLanguageServer 反而容易冲突。
- 安装扩展后重启 VS Code,打开任意
.go文件,底部状态栏应显示gopls (running) - 如果卡在 loading 或报
Failed to start gopls,大概率是代理问题,执行:go env -w GOPROXY=https://goproxy.cn,direct - 国内用户跳过这步,
gopls会卡在拉取golang.org/x/tools上,不是插件坏了
别信“必须配置 GOROOT”,它通常自动设对了
GOROOT 是 Go 安装路径,不是项目路径。官方安装包(MSI/.pkg/tar.gz)都会自动写入正确值,手动设置反而容易出错。
立即学习“go语言免费学习笔记(深入)”;
- 检查当前值:
go env GOROOT,macOS/Linux 应为/usr/local/go,Windows 为C:\Go - 如果输出为空或明显错误(比如
/usr/local/Cellar/go/1.21.0/libexec),说明你用了包管理器装的 Go,建议卸载重装官方包 -
GOPATH现在基本无用,除非你维护超老项目(Go < 1.11),否则别动它
go env 输出里一堆路径、代理、模块开关,最后发现 go version 早就能跑通——环境本身没问题,只是被过时信息带偏了。


















