执行 go install golang.org/dl/go1.26@latest 仅安装下载器到 $GOBIN,不生成 go1.26 命令;必须运行 go1.26 download 才在 $GOROOT/bin 创建该可执行文件,并确保 $GOROOT/bin 已加入 PATH。

go install golang.org/dl/go1.26@latest 之后为什么没有 go1.26 命令?
执行 go install golang.org/dl/go1.26@latest 只是把下载器装进 $GOBIN(通常是 $GOROOT/bin),它本身不提供 go1.26 可执行文件;真正生成该命令的是后续的 go1.26 download。
- 必须先运行
go1.26 download,它才会在$GOROOT/bin下创建go1.26二进制文件 - 若提示
command not found: go1.26,说明$GOROOT/bin未加入PATH,或go1.26 download尚未执行 -
go1.26 version和go version输出不同,验证是否切换成功最直接
go mod init 时 module 名称写错还能改吗?
能改,但不是“重命名”操作,而是修改 go.mod 文件第一行的 module 声明,并同步修正所有 import 路径引用 —— 否则 go build 会报 import path does not reflect its location 错误。
- 编辑
go.mod,把module example.com/foo改成新路径,比如module github.com/yourname/project - 用
grep -r "example.com/foo" . --include="*.go"找出所有旧 import,批量替换为新路径 - 运行
go mod tidy重新解析依赖,go.sum会自动更新校验和 - 注意:Git 仓库 URL 不影响模块名,模块名只用于 Go 的 import 解析逻辑
GOPROXY 设置为 https://goproxy.cn,direct 是什么意思?
这是 Go 1.13+ 的代理链配置,逗号分隔表示“尝试第一个,失败则 fallback 到 direct(直连官方)”,不是同时使用两个源。
-
goproxy.cn是国内镜像,加速拉取,但不保证长期可用(如证书过期、服务下线) -
direct表示跳过代理,直接访问proxy.golang.org或模块原始仓库(如 GitHub) - 如果公司内网禁止外网访问,可设为
https://intranet-proxy.example.com,direct,但需确保代理支持 Go proxy 协议 - 设置方式:用
go env -w GOPROXY="https://goproxy.cn,direct",避免手动改 shell 配置文件出错
为什么 go run . 报错 “no Go files in current directory”?
Go 要求当前目录至少有一个 .go 文件,且该文件所属的 package 必须是 main(入口包),否则就认为这不是可运行项目。
立即学习“go语言免费学习笔记(深入)”;
- 检查是否有
main.go,且首行是package main(不能是package utils或其他) - 如果文件在子目录(如
cmd/myapp/main.go),应运行go run cmd/myapp,而不是go run . -
go run .不递归扫描子目录,只看当前目录下的.go文件 - 常见陷阱:文件编码为 UTF-8 with BOM,导致 Go 解析器读到非法字符,表现为“no Go files” —— 用 VSCode 保存为 UTF-8(无 BOM)即可
go.mod 中的 module 名和代码里 import 语句的路径必须严格一致,哪怕只差一个斜杠或大小写。


















