Go环境搭建与第一个程序
前言
这篇是 Go基础合集 的第一篇学习笔记,这次整理的是 Go 语言的环境搭建和第一个程序。
想学一门新语言,第一步是什么?当然是把环境搭起来!很多人卡在环境配置这一步就放弃了,其实 Go 的安装配置非常简单,比 Java 配置 JAVA_HOME、CLASSPATH 那一套省心多了。
今天我们就从零开始,把 Go 环境搭好,跑通第一个 Hello World,顺便把 Go Modules 也讲清楚。
🏠个人主页:山沐与山
文章目录
一、Go语言简介
1.1 为什么学Go?
你可能会问:编程语言这么多,为什么要学 Go?
看看这些用 Go 写的项目你就明白了:Docker、Kubernetes、etcd、Prometheus... 云原生时代的半壁江山都是 Go 打下来的。
Go 语言有几个特点让它脱颖而出:
| 特点 | 说明 |
|---|---|
| 语法简单 | 关键字只有25个,学习曲线平缓 |
| 编译速度快 | 大型项目也能秒级编译 |
| 天生支持并发 | goroutine + channel,并发编程简单高效 |
| 静态类型 | 编译期检查类型错误,运行时更安全 |
| 单一可执行文件 | 编译后就一个二进制文件,部署超方便 |
1.2 Go的版本选择
Go 的版本命名很简单:go1.x.y,比如 go1.21.5。
建议 :选择最新的稳定版本,目前推荐 go1.21 或 go1.22。
为什么?因为 Go 团队承诺向后兼容,新版本只会更好用,不会破坏老代码。
二、环境安装
2.1 下载安装包
去官网下载:https://go.dev/dl/
根据你的操作系统选择对应版本:
| 操作系统 | 文件类型 | 示例 |
|---|---|---|
| Windows | .msi |
go1.21.5.windows-amd64.msi |
| macOS | .pkg |
go1.21.5.darwin-amd64.pkg |
| Linux | .tar.gz |
go1.21.5.linux-amd64.tar.gz |
2.2 Windows安装
下载 .msi 文件后双击运行,一路 Next 就行。
默认安装路径是 C:\Go,建议保持默认,省得后面配置麻烦。
安装完成后,打开命令行验证:
bash
go version
输出:
go version go1.21.5 windows/amd64
看到版本号就说明安装成功了。
2.3 macOS安装
方法一:下载 .pkg 安装包
双击运行,按提示安装即可,默认安装到 /usr/local/go。
方法二:使用 Homebrew(推荐)
bash
brew install go
验证安装:
bash
go version
2.4 Linux安装
bash
# 下载安装包
wget https://go.dev/dl/go1.21.5.linux-amd64.tar.gz
# 解压到 /usr/local
sudo tar -C /usr/local -xzf go1.21.5.linux-amd64.tar.gz
# 验证
/usr/local/go/bin/go version
三、环境变量配置
3.1 核心环境变量
Go 有几个重要的环境变量:
| 变量 | 说明 | 示例值 |
|---|---|---|
GOROOT |
Go 安装目录 | /usr/local/go |
GOPATH |
工作目录(存放依赖、编译产物) | $HOME/go |
GOPROXY |
模块代理地址 | https://goproxy.cn,direct |
GO111MODULE |
是否启用 Go Modules | on |
3.2 配置步骤
Windows:
右键"此电脑" → 属性 → 高级系统设置 → 环境变量,添加:
GOROOT=C:\Go
GOPATH=%USERPROFILE%\go
GOPROXY=https://goproxy.cn,direct
别忘了把 %GOROOT%\bin 加到 PATH 里。
macOS/Linux:
编辑 ~/.bashrc 或 ~/.zshrc:
bash
# Go 环境变量
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
# 国内代理,下载依赖更快
export GOPROXY=https://goproxy.cn,direct
执行 source ~/.bashrc 使配置生效。
3.3 验证配置
bash
go env
这个命令会列出所有 Go 环境变量。重点检查:
bash
go env GOROOT
go env GOPATH
go env GOPROXY
四、第一个Go程序
4.1 创建项目
bash
# 创建项目目录
mkdir hello
cd hello
# 初始化模块
go mod init hello
go mod init 会创建一个 go.mod 文件,这是 Go Modules 的核心文件。
4.2 编写代码
创建 main.go 文件:
go
package main
import "fmt"
func main() {
fmt.Println("Hello, Go!")
}
代码来自 code/main.go。
来分析一下这几行代码:
| 代码 | 说明 |
|---|---|
package main |
声明包名,main 包是程序入口 |
import "fmt" |
导入标准库的 fmt 包,用于格式化输出 |
func main() |
程序入口函数,必须在 main 包中 |
fmt.Println() |
打印输出并换行 |
4.3 运行程序
方法一:直接运行
bash
go run main.go
输出:
Hello, Go!
方法二:编译后运行
bash
# 编译
go build -o hello
# 运行
./hello
两种方式的区别是什么?
| 命令 | 说明 | 适用场景 |
|---|---|---|
go run |
编译并立即运行,不生成可执行文件 | 开发调试 |
go build |
只编译,生成可执行文件 | 部署发布 |
4.4 代码结构说明
一个最简单的 Go 程序需要什么?
hello/
├── go.mod # 模块定义文件
└── main.go # 程序入口
看到没?就两个文件,比 Java 的 src/main/java/... 那一套简洁多了。
五、Go Modules详解
5.1 什么是Go Modules?
在 Go 1.11 之前,Go 的依赖管理很痛苦------所有代码都得放在 GOPATH/src 下面。
现在有了 Go Modules,你可以在任意目录创建项目,依赖管理也变得现代化了。
5.2 核心文件
| 文件 | 说明 |
|---|---|
go.mod |
模块定义,记录模块名和依赖列表 |
go.sum |
依赖校验,记录依赖的版本和哈希值 |
看看 go.mod 长什么样:
module hello
go 1.21
当你添加依赖后,它会变成这样:
module hello
go 1.21
require (
github.com/gin-gonic/gin v1.9.1
github.com/go-redis/redis/v8 v8.11.5
)
5.3 常用命令
| 命令 | 说明 |
|---|---|
go mod init <模块名> |
初始化模块 |
go mod tidy |
整理依赖(添加缺失的、删除多余的) |
go mod download |
下载依赖到本地缓存 |
go mod vendor |
将依赖复制到 vendor 目录 |
go get <包名> |
添加/更新依赖 |
5.4 添加依赖示例
假设我们要用 gin 框架:
bash
go get github.com/gin-gonic/gin
然后就可以在代码里用了:
go
package main
import "github.com/gin-gonic/gin"
func main() {
r := gin.Default()
r.GET("/", func(c *gin.Context) {
c.JSON(200, gin.H{"message": "Hello, Gin!"})
})
r.Run(":8080")
}
执行 go mod tidy 会自动整理依赖。
六、常见问题
6.1 问题1:go: command not found
问题描述 :命令行输入 go 提示找不到命令。
原因分析:
- Go 没有安装成功
- 环境变量没配置正确
解决方案:
bash
# 检查 Go 是否安装
ls /usr/local/go/bin/go
# 检查 PATH
echo $PATH | grep go
确保 $GOROOT/bin 在 PATH 中。
6.2 问题2:下载依赖很慢或超时
问题描述 :执行 go get 时很慢或报错 timeout。
原因分析 :默认从 proxy.golang.org 下载,国内访问慢。
解决方案:
设置国内代理:
bash
go env -w GOPROXY=https://goproxy.cn,direct
6.3 问题3:go mod init 报错
问题描述 :执行 go mod init 时报错。
原因分析:
- 当前目录已经有
go.mod文件 - 没有给模块名
解决方案:
bash
# 正确用法
go mod init myproject
# 如果是 GitHub 项目
go mod init github.com/username/myproject
6.4 问题4:IDE没有代码提示
问题描述:用 VS Code 或 GoLand 写代码没有智能提示。
解决方案:
VS Code :安装 Go 插件,然后按 Ctrl+Shift+P,执行 Go: Install/Update Tools,全选安装。
GoLand :确保 GOROOT 配置正确,File → Settings → Go → GOROOT。
七、总结
本文介绍了 Go 语言环境搭建的完整流程,重点包括:
- 环境安装:下载安装包,一路 Next
- 环境变量 :配置
GOROOT、GOPATH、GOPROXY - 第一个程序 :
go mod init+go run - Go Modules:现代化的依赖管理
关键命令速查表:
| 命令 | 说明 |
|---|---|
go version |
查看版本 |
go env |
查看环境变量 |
go mod init |
初始化模块 |
go run |
编译并运行 |
go build |
编译 |
go mod tidy |
整理依赖 |
go get |
添加依赖 |
下一篇:我们将学习 Go 的变量、常量和基本类型,敬请期待!
热门专栏推荐
- Agent小册
- 服务器部署
- Java基础合集
- Python基础合集
- Go基础合集
- 大数据合集
- 前端小册
- 数据库合集
- Redis 合集
- Spring 全家桶
- 微服务全家桶
- 数据结构与算法合集
- 设计模式小册
- 消息队列合集
等等等还有许多优秀的合集在主页等着大家的光顾,感谢大家的支持
文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起来评论区一起讨论😊
希望能和诸佬们一起努力,今后我们一起观看感谢您的阅读🙏
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🌟