只需两行代码即可运行Go程序:package main和fmt.Println("Hello, World!"),用go run hello.go执行,无需配置环境变量或初始化模块。

直接用 go run 就能跑通,不需要配置环境变量或新建项目目录——只要你已安装 Go(1.16+),hello.go 文件里只写两行代码就足够。
创建并运行 hello.go 文件
在任意目录下新建文本文件,命名为 hello.go,内容如下:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
然后终端执行:
go run hello.go
你会立刻看到输出:Hello, World!。注意三点:
立即学习“go语言免费学习笔记(深入)”;
-
package main是可执行程序的固定包名,不能写成package hello -
func main()必须小写,且不能带参数、不能有返回值,否则go run会报cannot run non-main package或func main must have no arguments and no return values -
fmt.Println结尾有n,漏掉会不换行,但不会报错——容易误以为没输出
为什么不用 go mod init?
新手常被教程误导,一上来就 go mod init example.com/hello。其实:go run 对单文件无模块依赖时完全跳过模块系统;只有当你引入本地包、第三方包,或后续要 go build 成二进制时,才需要 go mod init。过早初始化反而可能因 GOPROXY 或网络问题卡住。
如果你确实想初始化模块(比如为后续加依赖做准备),只需确保当前目录为空或仅含 hello.go,再运行:
go mod init hello
它会生成 go.mod,内容极简:
module hello go 1.21
此时再 go run hello.go 依然正常——模块只是为依赖服务,不改变单文件执行逻辑。
常见报错与对应修复
遇到运行失败?大概率是下面这几个原因:
-
command not found: go:Go 未加入$PATH,检查安装后是否重启终端,或手动执行/usr/local/go/bin/go version确认路径 -
no required module provides package fmt:几乎不可能出现——fmt是标准库,只要 Go 装对了就一定存在;若真出现,说明 Go 安装损坏,重装即可 - 终端没反应 / 空白输出:检查是否误用了
fmt.Print(无换行)且终端滚动太快;或文件编码是 UTF-8 with BOM(Windows 记事本常见),改用 VS Code 或vim保存为纯 UTF-8 -
undefined: Println:大小写写错,比如printLn或println,Go 区分大小写,必须是Println
真正卡住新手的,往往不是语法,而是编辑器自动保存了隐藏字符、终端缓存了旧二进制、或者复制代码时带入了全角空格——建议所有代码手敲一遍,别复制。










