系列:《Go 1.27 入门实战-博客》
阶段:第一阶段——认识 Go,从 Hello World 开始
本文目标:从零安装 Go 开发环境,创建第一个 Go 项目,成功运行 Hello, Go!
第一次接触编程,最容易卡住的往往不是代码,而是环境:安装包该选哪个?装完怎么确认成功?代码应该存在哪里?为什么教程里的命令在自家电脑上跑不起来?
这一篇不讲复杂原理,只做一件事:跟着步骤,把第一个 Go 程序真正跑起来。
完成本文后,你应该能够:
- 安装 Go 1.27 系列
- 在终端中查看 Go 版本
- 使用编辑器创建
.go 文件
- 理解
go.mod、package main、import、func main() 和 fmt.Println 的基本作用
- 使用
go run 运行程序
- 使用
go build 编译程序
版本提示:截至 2026 年 10 月 9 日,Go 官方下载页提供的稳定版本为 Go 1.27.2。本文按 Go 1.27 系列的最新补丁版本演示。下载时请以官方页面显示的稳定版本为准。
一、先准备好两样东西
开始之前,准备好:
1. Go:包含运行和编译 Go 程序所需要的工具链。
2. 代码编辑器:本文推荐免费的 Visual Studio Code(简称 VS Code)。你也可以用其他文本编辑工具,但初学阶段建议跟随同一种编辑器,减少不必要的差异。
先记住一个简单区别:
- Go 是编程语言及其开发工具链。
- VS Code 是用来编写和管理代码的编辑器。
安装 VS Code 并不等于安装了 Go;反过来,只安装 Go,也不代表你已经备好了顺手的编辑环境。
二、下载并安装 Go 1.27
第 1 步:打开 Go 官方下载页面
请使用官方地址:https://go.dev/dl/
下载页面会列出不同操作系统和处理器架构对应的安装包。选择时,重点看三个信息:
- 操作系统:Windows、macOS 或 Linux
- 处理器架构:常见的是 x86-64(也写作 AMD64)和 ARM64
- 安装包类型:Windows 通常选择
.msi,macOS 通常选择 .pkg,Linux 常见的是 .tar.gz 压缩包
不要下载名称中带有 src 的源码包来做普通安装。源码包主要用于需要自行编译 Go 工具链的场景,初学者一般用不到。
第 2 步:根据电脑选择安装包
Windows
大多数普通的 64 位 Windows 电脑,可以选择类似下面名称的安装包:
go1.27.2.windows-amd64.msi
如果你用的是 Windows on ARM 设备,应选择相应的 ARM64 安装包。拿不准时,可以打开 Windows 的“设置 → 系统 → 关于”,查看“系统类型”。
下载完成后:
- 双击
.msi 文件
- 按安装向导提示继续
- 初学者通常保持默认安装位置即可
- 安装完成后,关闭已经打开的 PowerShell、命令提示符和 VS Code 终端,再重新打开
Go 的 Windows 安装程序会处理常见的安装配置。不要因为暂时找不到某个设置,就先去手动修改系统环境变量。 先完成安装并验证,遇到问题再排查。
macOS
在官方页面选择 macOS 对应的安装包:
- Apple 芯片的 Mac(例如 M 系列):通常选择
arm64
- Intel 芯片的 Mac:选择
amd64
下载 .pkg 安装包后,双击打开并按照安装向导完成安装。安装后新开一个“终端”窗口进行验证。
Linux
Linux 通常使用 .tar.gz 压缩包。请在官方页面选择与你的 Linux 系统及处理器架构匹配的安装包,然后严格按照 Go 官方安装说明执行:
https://go.dev/doc/install
如果系统里已经装过 Go,升级前先确认旧版本安装在哪里。官方文档特别提醒:不要把新版本直接解压到已经存在的 /usr/local/go 目录中,否则可能留下不完整或混杂的安装。不要不看路径就复制删除命令;确认旧安装位置后,再按官方说明更新。
完成安装后,按官方文档配置 PATH,重新打开终端,再继续下一步。
三、验证安装是否成功
安装程序结束,不代表命令行一定已经能找到 Go。现在来检查。
第 1 步:打开终端
- Windows:打开“开始”菜单,搜索
PowerShell 并打开
- macOS:打开“终端”(Terminal)
- Linux:打开你常用的终端程序
终端可以理解为一个通过输入命令来操作电脑的窗口。这里不需要你会写代码,只需输入下面的命令。
第 2 步:输入版本检查命令
go version
按下回车。如果安装成功,你会看到类似这样的输出:
go version go1.27.2 windows/amd64
不同系统的最后一部分会不同。例如,macOS 可能出现 darwin/arm64,Linux 可能出现 linux/amd64。
其中:
go1.27.2 表示 Go 工具链版本
windows、darwin 或 linux 表示操作系统
amd64 或 arm64 表示处理器架构
核对重点:输出中的版本应当是你安装的版本。如果下载页面已经提供更新的 Go 1.27.x 补丁版本,以官方页面为准,不必执着于示例里的 1.27.2。
如果终端提示找不到 go 命令,先不要急着重装。可以先看本文后面的“常见问题排查”。
第 3 步:检查 Go 工具是否可用
再输入:
go env GOROOT
这条命令会输出 Go 工具链所在的目录。不同电脑上的结果会不同,不需要和示例路径完全一致。
到这里,如果 go version 能正确显示版本,说明我们已经迈过了第一个关卡。关于 Go 环境的搭建与后续工程化实践,如果你希望更系统地掌握从语法到 安装 Go 1.27 系列 的完整路径,可以同步参考云栈社区的相关实战课程。
四、安装 VS Code,准备写代码
VS Code 官方网站:https://code.visualstudio.com/
如果你已经有自己熟悉的 Go 编辑器,可以继续用;如果还没有,建议按下面的步骤操作。
第 1 步:安装 VS Code
- 打开 VS Code 官方网站
- 下载适合自己操作系统的版本
- 安装并启动
第 2 步:安装 Go 扩展
在 VS Code 左侧找到“扩展”(Extensions)入口,搜索:
Go
选择由 Go Team at Google 发布的 Go 扩展并安装。也可以通过扩展市场页面查看:
https://marketplace.visualstudio.com/items?itemName=golang.Go
这个扩展可以为 Go 代码提供语法提示、格式化等开发辅助功能。第一次打开 Go 文件时,如果 VS Code 提示安装推荐的 Go 工具,可以按提示安装。
请注意:扩展是编辑器的辅助工具,不会替代 Go 本身。 前面安装好的 Go 工具链依然需要保留。
五、创建第一个 Go 项目
现在开始写代码。
第 1 步:创建项目文件夹
打开终端,逐行输入:
mkdir hello
cd hello
这两条命令的意思是:
mkdir hello:创建一个名为 hello 的文件夹
cd hello:进入这个文件夹
接下来所有操作都在 hello 文件夹中完成。
如果系统提示文件夹已经存在,不用重复创建。进入你准备好的项目目录即可。
第 2 步:初始化 Go 模块
在当前目录执行:
go mod init example.com/hello
成功时会看到类似提示:
go: creating new go.mod: module example.com/hello
然后,项目文件夹中会多出一个名为 go.mod 的文件。
go.mod 是什么?
先把它理解为当前 Go 项目的“基本信息和依赖清单”。
它用于记录模块路径、项目所使用的 Go 语言版本要求,以及项目依赖的其他模块等信息。随着后面的项目逐渐变大,go.mod 会变得更加重要。这里的 example.com/hello 是教程使用的示例模块路径,并不要求你现在购买域名或创建网站。
执行 go mod init 后,Go 会自动生成 go.mod。第一次练习时不要手动改动其中的版本行,保留工具生成的内容即可。 想深入理解 初始化 Go 模块 在后续 Web 框架与微服务开发中如何演进,可以后续再逐步接触。
第 3 步:用 VS Code 打开项目文件夹
打开 VS Code,在菜单中选择“文件 → 打开文件夹”,然后选择刚才创建的 hello 文件夹。
左侧文件列表中应该能看到 go.mod。
如果看不到它,先确认 VS Code 打开的是 hello 文件夹,而不是它的上一级目录。
第 4 步:创建 main.go
在 VS Code 左侧文件列表中,新建一个文件,文件名必须是:
main.go
注意:扩展名必须是 .go。不要保存成 main.go.txt。
把下面的代码完整复制进去:
package main
import "fmt"
func main() {
fmt.Println("Hello, Go!")
}
保存文件。Windows 和 macOS 中通常可以按 Ctrl + S 或 Command + S 保存。
恭喜,你已经写出了第一个 Go 程序。先别急着背语法,我们只解释理解这段代码所必需的几部分。
六、读懂这 5 行代码
1. package main
package main
package 用来声明当前 Go 文件属于哪个包。可以暂时把包理解为组织 Go 代码的一种方式。
当我们要编写一个可以直接运行的应用程序时,通常会把入口文件声明为 package main。这个名称是固定写法,不能随意换成其他名字后还期待它按同样方式启动。
2. import "fmt"
import "fmt"
import 用来引入代码需要使用的包。
fmt 是 Go 自带的标准库包,提供格式化输入和输出等功能。我们这次要在屏幕上显示一行文字,所以需要使用它。
3. func main()
func main() {
// 程序从这里开始执行
}
func 用来声明函数。main 是这个可执行程序的入口函数。
你可以先把它理解成:运行这个程序时,电脑会从 main 函数里的语句开始执行。花括号 {} 之间的内容就是这个函数的主体。
4. fmt.Println("Hello, Go!")
fmt.Println("Hello, Go!")
这行代码会在终端输出:
Hello, Go!
拆开来看:
fmt:我们引入的标准库包
Println:用于输出内容,并在末尾换行
"Hello, Go!":要输出的文本,双引号表示这是一个字符串
Go 区分大小写,所以 Println 的大小写必须正确。这里的英文逗号、感叹号都属于字符串内容。
5. 为什么结尾没有分号?
你可能发现,每行结尾都没有写分号。在常见的 Go 代码中,通常不需要像某些语言那样在每条语句末尾显式添加分号。照着本文的代码写就可以,不要额外补上分号。
七、运行程序:使用 go run
现在让代码运行起来。
确保终端当前位于 hello 项目文件夹中,也就是能看到 go.mod 和 main.go 的目录。
执行:
go run .
按回车后,预期会看到:
Hello, Go!
这里的 . 表示当前目录。go run . 会让 Go 运行当前目录中的主程序包。
如果你只想直接运行这个单独的文件,也可以使用:
go run main.go
不过从本教程开始,建议优先使用 go run .,因为后面项目会逐渐包含多个 Go 文件。
go run 做了什么?
第一次学习时,只需要记住:
go run 负责构建并运行程序,让你快速看到结果。
它很适合写完代码后马上验证,不需要先手动生成一个可执行文件。
如果终端显示 Hello, Go!,说明 Go 安装、项目初始化、代码保存和运行流程都已经串通了。
八、编译程序:使用 go build
运行成功后,再尝试编译。
在项目目录下执行:
go build
正常情况下,命令结束时不会输出很多内容,也不一定会显示“成功”字样。这是正常的。
回到项目文件夹查看,你会看到生成的可执行文件:
- Windows 通常是
hello.exe
- macOS 或 Linux 通常是
hello
这个文件就是编译后的程序。之后即使不输入 go run,也可以直接运行它。
Windows PowerShell:
.\hello.exe
macOS / Linux:
./hello
运行后,你应该再次看到:
Hello, Go!
go run 和 go build 有什么不同?
可以用一句话区分:
go run .:构建并立即运行,适合日常练习
go build:构建出可执行文件,适合检查能否编译以及生成程序文件
初学阶段先熟练掌握这两个命令就够了。
九、初学者常见问题排查
如果某一步没有成功,先按照下面的情况逐项检查。不要一次修改很多东西,否则更难找到真正的问题。
问题 1:提示“go 不是内部或外部命令”或“command not found”
这通常表示终端暂时找不到 Go 命令。
按顺序检查:
- 确认 Go 安装确实完成,没有只下载安装包却没运行安装程序
- 关闭已经打开的终端,再重新打开
- 如果在 VS Code 的内置终端运行,关闭并重新启动 VS Code
- 仍然不行,再按照官方安装说明检查
PATH 环境变量
不要先随意添加多个 Go 安装目录。电脑上有多个旧版本时,错误的路径顺序也可能导致系统使用了另一个版本。
问题 2:显示的版本不是自己安装的版本
先重新运行:
go version
如果显示了其他版本,电脑可能存在多个 Go 安装位置,或终端还在使用旧的路径配置。
Windows 可以在 PowerShell 中执行:
where.exe go
macOS / Linux 可以执行:
which -a go
这些命令会帮助你查看系统找到的 Go 命令位置。先确认路径再处理,不要直接删除看起来陌生的目录。
问题 3:提示找不到 go.mod
如果你执行 go run . 时看到了与 go.mod 有关的错误,常见原因是当前终端不在项目目录中。
执行:
pwd
在 Windows PowerShell 和 macOS / Linux 终端中,这个命令通常可以显示当前目录。确认自己进入了包含 go.mod 和 main.go 的 hello 文件夹。
如果你还没有初始化项目,请在项目根目录执行:
go mod init example.com/hello
如果项目已经有 go.mod,不要重复执行初始化命令。
问题 4:提示找不到 main.go
请确认文件名和保存位置:
- 文件名是
main.go
- 它位于
hello 项目文件夹中
- 文件确实已经保存
- 不是
main.go.txt 这样的文件名
Windows 文件资源管理器可能默认隐藏已知文件类型的扩展名。如果看起来叫 main.go 却无法识别,可以开启“显示文件扩展名”进行检查。
问题 5:提示语法错误
请先将 main.go 与本文的代码逐行对照,尤其检查:
- 第一行是不是
package main
import "fmt" 是否拼写正确
main、Println 的大小写是否正确
- 双引号和花括号是否成对
- 代码是否完整复制并保存
编程中的标点符号也很重要。请使用英文半角引号和括号,不要用中文全角标点代替代码中的符号。
问题 6:运行后没有看到预期输出
先确认你运行的是:
go run .
然后检查 main.go 是否包含:
fmt.Println("Hello, Go!")
保存文件后再次运行。注意,go build 主要负责编译,不会自动把程序的输出展示出来;需要运行生成的可执行文件才能看到输出。
十、动手练习:改一改你的第一个程序
只复制代码还不够。现在请自己修改一次。
把 main.go 中的这一行:
fmt.Println("Hello, Go!")
改成:
fmt.Println("我开始学习 Go 了!")
保存文件,然后运行:
go run .
如果终端显示:
我开始学习 Go 了!
就说明你已经能自己修改程序并验证结果了。
再做一个小挑战:让程序输出两行文字。在 main 函数里再增加一行 fmt.Println,例如:
package main
import "fmt"
func main() {
fmt.Println("Hello, Go!")
fmt.Println("这是我的第一个 Go 程序。")
}
再次执行 go run .,检查是否输出了两行。如果成功,本文的实战目标就完成了。
十一、本篇小结
今天我们没有追求一次学完所有语法,只完成了一条最重要的入门路径:
安装 Go → 验证版本 → 创建项目 → 初始化模块 → 编写代码 → 运行程序 → 编译程序。
请记住这几个关键词:
go version:查看当前使用的 Go 版本
go mod init:初始化 Go 模块,生成 go.mod
package main:声明可执行程序使用的主包
import "fmt":引入用于输出文字的标准库包
func main():可执行程序的入口函数
fmt.Println:把文字输出到终端
go run .:构建并运行当前目录中的程序
go build:编译并生成可执行文件
如果你成功看到了 Hello, Go!,那你已经从“还没有写过代码”,迈到了“能够亲手运行一个程序”。
下一篇,我们将继续学习 Go 的基础语法,从变量、常量和基本数据类型开始。暂时不需要把所有规则背下来,跟着代码练习,理解会一点点建立起来。后续遇到环境搭建、模块管理或项目工程化的问题,也欢迎到 云栈社区 查找更多实战经验和技术讨论。
官方参考资料
- Go 官方下载页面
- Go 官方安装指南
- Go 官方入门教程:Get started
- Go 官方教程:创建 Go 模块
- Go 1.27 官方发布说明