必须使用 go ≥ 1.21,否则 slices.contains 等标准库函数不可用;确保 go run 单文件、go test 单元测试、标准库导入正常,其余环境非必需。

直接上手刷题不需要完整工程环境,但必须确保 go run 能立刻执行单文件、go test 能跑单元测试、标准库能正常导入——其余都是干扰项。
go version 必须 ≥ 1.21,否则部分标准库函数不可用
LeetCode、Codeforces 和多数 OJ 平台的 Go 测试环境已升级到 1.21+。如果你本地是 1.19 或更早版本,slices.Contains、、<code>cmp.Diff 等常用工具函数会报错未定义。
- 检查当前版本:
go version;若低于go1.21,请从 go.dev/dl 下载最新稳定版(2026 年推荐go1.23.10) - Linux/macOS 用户解压后务必替换
/usr/local/go,不要叠加安装多个版本 - Windows 用户卸载旧 MSI 后再装新 MSI,避免注册表残留导致
GOROOT指向错误路径
不用配 GOPATH,但必须关掉 GO111MODULE=off
刷题几乎全是单文件或极简目录结构,启用模块(module)反而会在当前目录生成 go.mod,而多数在线判题系统根本不读它——结果就是本地能跑、OJ 报 import "xxx": cannot find module providing package xxx。
Go语言(Golang)1.26.0版本提供 Go 官方 Windows amd64 MSI 安装包下载入口,版本号 1.26.0,可用于旧项目维护、兼容性测试和指定版本开发环境配置。
- 执行:
go env -w GO111MODULE=off(强制关闭模块模式) - 验证:
go env GO111MODULE应输出off - 别碰
GOPATH:只要go run main.go能运行,就说明GOROOT和PATH已正确,GOPATH对单文件无影响
VS Code + go extension 要禁用自动初始化模块
VS Code 的官方 Go 扩展默认在打开任意 .go 文件时自动调用 go mod init,一保存就生成 go.mod,后续所有 go run 都走模块逻辑,和 OJ 行为不一致。
- 打开 VS Code 设置(
Cmd+,或Ctrl+,),搜索go.toolsEnvVars - 添加键值对:
"GO111MODULE": "off" - 再搜索
go.autoCompleteBuildTags,设为[""](空字符串),避免补全时意外触发模块解析 - 重启 VS Code,新建
leetcode_123.go,确认左下角状态栏不显示 “Initializing Go modules…”
真正卡住人的从来不是环境搭建,而是本地能过样例却提交 WA——八成是因为你开着模块模式,而 OJ 用的是裸 import 路径。关掉 GO111MODULE 后,所有 import "fmt"、import "sort" 都直连标准库,行为完全对齐判题机。
golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!










