`go.mod` 文件中的 `go` 指令指定了编译项目所需的*最低* Go 版本,而非开发时使用的版本。自从 Go 1.21 包含补丁号(例如 1.21.0)以来,一个常见的错误是指定一个最近的补丁版本(如 1.25.7)。这样做会强制所有依赖项目(直接或间接)使用该 Go 版本或更高版本,不必要地限制了它们的灵活性。 虽然确保用户使用最新版本很诱人,但这个决定应该由他们自己做出。像 `actions/setup-go` 这样的工具不应使用 `go` 指令来确定构建版本;`toolchain` 指令是一个更好的选择。 Go 在 `go mod init` 时默认使用最新版本,这是一个糟糕的默认设置,应该手动调整以反映真正的最低要求。即使某个特定补丁修复了错误,除非在旧版本上编译失败,否则应避免在 `go` 中指定它。`go` 指令影响很大,应谨慎使用。