本地直接装 go 二进制包即可,无需 docker 或 vm;windows/macos/linux 均支持开箱即用,5 分钟内可运行首个程序,常见错误如 command not found: go 或 go mod init 失败,多因 path 未配对或下载了错误系统版本。

本地直接装 Go,别碰 Docker 或 VM
绝大多数人上机实验卡在环境这一步,根本原因是试图用容器或虚拟机跑 Go——其实完全没必要。Go 官方二进制包开箱即用,Windows/macOS/Linux 都支持,装完就能 go run,5 分钟内可跑通第一个程序。
常见错误现象:command not found: go、GOROOT not set、go mod init fails with no module,基本都源于 PATH 没配对,或下载了错误版本(比如 macOS 下下了 Windows 的 .zip)。
- 去 https://www.php.cn/link/81836b7cd16991abb7febfd7832927fd 下载对应系统的最新稳定版(如
go1.22.6.darwin-arm64.pkg或go1.22.6.windows-amd64.msi),不要下源码包 - Windows 用户安装 MSI 后默认就加好了 PATH;macOS 用 pkg 安装后,
/usr/local/go/bin已自动加入系统 PATH(验证:终端输which go应返回该路径) - Linux 用户下载 tar.gz 后解压到
/usr/local,再手动把/usr/local/go/bin加进$PATH(推荐写入~/.bashrc或~/.zshrc)
VS Code + Go 扩展,比 Goland 更轻量启动快
初学阶段不需要全功能 IDE。VS Code 装一个 Go 扩展(由 Go 团队官方维护),就能获得语法高亮、跳转定义、go fmt 自动格式化、测试运行按钮,且启动秒开,不占内存。
容易踩的坑:Go 扩展依赖 gopls,但某些网络环境下它会卡住下载;或者扩展提示 “no workspace detected”,其实是没打开含 go.mod 的文件夹。
- 安装 VS Code 后,搜索并安装扩展名确切为
Go(Publisher 是golang.go) - 新建文件夹,终端进该目录,执行
go mod init example.com/hello(随便起个模块名) - 在该文件夹里新建
main.go,写上最简程序,保存后左下角状态栏应显示gopls ready - 如果卡在 downloading gopls,可手动下载:访问 https://www.php.cn/link/3457c20de13ee504e33b7e6a9ec92e8a,找最新
gopls二进制,放进$GOPATH/bin或任意 PATH 目录
go run 是唯一需要记住的命令
刚上手时,忘掉 go build、go install、go test -v 这些。所有实验代码都用 go run main.go 直接执行,改完保存,回车重跑,反馈最快。
注意点:go run 只接受单个 .go 文件(不含 package main 会报错),多文件项目必须有 go.mod 且用 go run .(注意点号)。
- 单文件实验:文件名必须是
main.go,且首行是package main,必须有func main() - 多文件实验:先
go mod init xxx,再go run .,不能写成go run *.go(会报重复声明) - 遇到
cannot find package,大概率是当前目录没go.mod,或import路径写成了本地相对路径(Go 不支持)
别急着配 GOPROXY,先确认是否真被墙
国内用户常一上来就设 GOPROXY=https://goproxy.cn,但很多校园网/企业内网本身能直连 proxy.golang.org,硬切反而导致私有模块拉不到、或 go get 报证书错误。
真实判断方式:在终端运行 curl -v https://proxy.golang.org,看是否返回 HTTP 200;如果超时或 TLS 握手失败,再配代理。
- 临时启用代理只影响当前终端:
export GOPROXY=https://goproxy.cn,direct - 永久配置写进 shell 配置文件前,先试
go run一个含第三方库(如github.com/gofrs/uuid)的小程序,观察是否卡在Fetching - 若用
go mod vendor,则GOPROXY对 vendor 无影响,但go mod download仍需代理
真正卡住的点往往不在 Go 本身,而在你编辑器没识别到 go.mod、终端没进对目录、或误删了 package main。每次出错,先 pwd 看路径,ls 看有没有 go.mod 和 main.go,再 go env GOPATH 确认模块根路径——这些比查文档更快定位问题。
golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!











