必须设为on,因auto模式依赖路径判断不可靠(如/tmp下不识别模块),off模式则完全禁用模块功能,导致go mod命令失效、依赖无法管理;显式启用才能确保模块机制稳定运行。

go version 能跑通,但 go mod init 报错找不到模块
说明 Go 二进制已装好,但模块机制没启用或 GOPROXY 没配。Go 1.16+ 默认开启 GO111MODULE=on,但国内网络下 go mod init 会卡在拉取 golang.org/x 等包上,报类似 cannot find module providing package 的错误。
- 运行
go env -w GO111MODULE=on显式打开模块模式(旧版可能需要) - 必须配置代理:
go env -w GOPROXY=https://goproxy.cn,direct(阿里云镜像更稳) - 验证:执行
go mod init example.com/test后应生成go.mod,且无超时或 404
Windows 上 go run main.go 提示“找不到指定的文件”
这不是代码问题,而是 Windows 下 PATH 或 GOROOT 配置异常导致的 go 命令调用失败。常见于手动解压安装(非 .msi)后未把 C:\Program Files\Go\bin 加入系统 PATH,或 GOROOT 被错误覆盖。
Go 配置库,使用 spf13/viper — 分层优先级(flag > env >file > KV > default),提供 BindPFlag/BindPFlags、SetEnvPrefix + SetEnvKeyReplace 等功能。
- 检查
go env GOROOT输出是否指向真实安装路径(如C:\Program Files\Go) - 确认
PATH中包含%GOROOT%\bin,不是%GOPATH%\bin - 重启终端(CMD/PowerShell)再试,避免环境变量缓存
VS Code 里 import 提示红色波浪线,但 go run 正常
这是编辑器语言服务器(gopls)没正确加载模块上下文,和运行时无关。本质是 VS Code 没识别到当前目录是 Go Module 根目录。
- 确保你在
go.mod所在目录下打开 VS Code 工作区(不是父目录或子目录) - 检查 VS Code 底部状态栏是否显示
Go (GOPATH)—— 应为Go (module) - 按
Ctrl+Shift+P→ 输入Go: Install/Update Tools,勾选全部工具重装(尤其gopls)
写完 HTTP 服务,浏览器访问 localhost:8080 返回空白或连接被拒绝
最常见原因是 http.ListenAndServe 启动后程序立即退出,或者端口被占用、防火墙拦截。Go 的 HTTP server 是阻塞式启动,不会自动后台运行。
- 确认
main()函数末尾没有return或提前os.Exit(0) - 检查日志是否输出
Server starting on port :8080—— 没这行说明ListenAndServe根本没执行 - 换端口测试:
port := ":8081",避免被其他进程(如 Skype、Docker Desktop)占 8080 - Windows 用户注意:若启用了 Hyper-V 或 WSL2,某些端口映射可能失效,优先用
127.0.0.1:8080而非localhost:8080
golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!










