运行 go version 输出版本信息即安装成功;若报错需检查goroot和path;go env验证goroot、go111module等关键变量;go run main.go输出ok确认运行能力;go mod init验证模块系统。

运行 go version 看命令是否可用
这是最快速的判断:终端输入 go version,有类似 go version go1.22.3 linux/amd64 的输出,说明 go 命令已进 PATH,基础链路通了。
常见失败现象:
-
command not found: go(Linux/macOS)或'go' is not recognized(Windows)→ 检查PATH是否包含$GOROOT/bin(Linux/macOS)或%GOROOT%\bin(Windows),改完需重启终端 - 输出版本但提示
cannot execute binary file→ 下载包与系统架构不匹配(比如在 ARM Mac 上装了 amd64 版本)
用 go env 核对关键变量是否合理
go env 不只是“看看”,重点验证三项:
-
GOROOT:必须指向 Go 安装根目录(如/usr/local/go或C:\Go),不能是空或用户项目路径 -
GO111MODULE:现代项目应为on;若显示auto或off,可能意外触发 GOPATH 模式,导致依赖查找异常 -
GOPATH:Go 1.16+ 默认为空或返回默认路径(如$HOME/go)完全正常,只要go mod init能跑通就不用管它
执行 go env GOROOT GO111MODULE 即可聚焦查看,不必刷一屏冗余信息。
写个 main.go 用 go run 直接跑通
新建空目录,放一个 main.go:
Go 配置库,使用 spf13/viper — 分层优先级(flag > env >file > KV > default),提供 BindPFlag/BindPFlags、SetEnvPrefix + SetEnvKeyReplace 等功能。
package main
import "fmt"
func main() {
fmt.Println("OK")
}
然后执行 go run main.go。成功输出 OK 才算真正闭环。
容易卡住的地方:
- 文件名不是
main.go,或漏了.go后缀 → 报错no Go files in current directory - Windows 上用记事本保存,选了 “UTF-8 with BOM” → Go 解析失败,报
syntax error: unexpected symbol;务必用 VS Code 或 Notepad++ 保存为纯 UTF-8 - 当前目录下已有损坏的
go.mod→ 报go: cannot find main module;直接删掉重试 - PowerShell 中执行无响应 → 换
cmd.exe排除 shell 兼容性干扰
确认模块系统能工作:go mod init 和 go list
哪怕只是 Hello World,也建议在项目根目录跑一次:
-
go mod init example.com/hello→ 应生成干净的go.mod -
go list -m→ 应输出模块名,证明模块解析器在线
如果 go mod init 报错说 “module root not in GOPATH”,说明你还在旧模式里挣扎——别设 GOPATH,删掉相关环境变量,确保 GO111MODULE=on 就行。
Windows 用户特别注意:GOROOT 路径里带空格(比如 C:\Program Files\Go)会导致部分工具链调用失败,安装时尽量选无空格路径。
golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!










