Go环境搭建与第一个程序
前言
这篇是 Go基础合集 的第一篇学习笔记,这次整理的是 Go 语言的环境搭建和第一个程序。
想学一门新语言,第一步是什么?当然是把环境搭起来!很多人卡在环境配置这一步就放弃了,其实 Go 的安装配置非常简单,比 Java 配置JAVA_HOME、CLASSPATH那一套省心多了。
今天我们就从零开始,把 Go 环境搭好,跑通第一个Hello World,顺便把Go Modules也讲清楚。
🏠个人主页:山沐与山
文章目录
- 一、Go语言简介
- 二、环境安装
- 三、环境变量配置
- 四、第一个Go程序
- 五、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,建议保持默认,省得后面配置麻烦。
安装完成后,打开命令行验证:
go version输出:
go version go1.21.5 windows/amd64看到版本号就说明安装成功了。
2.3 macOS安装
方法一:下载.pkg安装包
双击运行,按提示安装即可,默认安装到/usr/local/go。
方法二:使用 Homebrew(推荐)
brewinstallgo验证安装:
go version2.4 Linux安装
# 下载安装包wgethttps://go.dev/dl/go1.21.5.linux-amd64.tar.gz# 解压到 /usr/localsudotar-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:
# Go 环境变量exportGOROOT=/usr/local/goexportGOPATH=$HOME/goexportPATH=$PATH:$GOROOT/bin:$GOPATH/bin# 国内代理,下载依赖更快exportGOPROXY=https://goproxy.cn,direct执行source ~/.bashrc使配置生效。
3.3 验证配置
goenv这个命令会列出所有 Go 环境变量。重点检查:
goenvGOROOT goenvGOPATH goenvGOPROXY四、第一个Go程序
4.1 创建项目
# 创建项目目录mkdirhellocdhello# 初始化模块go mod init hellogo mod init会创建一个go.mod文件,这是 Go Modules 的核心文件。
4.2 编写代码
创建main.go文件:
packagemainimport"fmt"funcmain(){fmt.Println("Hello, Go!")}代码来自code/main.go。
来分析一下这几行代码:
| 代码 | 说明 |
|---|---|
package main | 声明包名,main包是程序入口 |
import "fmt" | 导入标准库的fmt包,用于格式化输出 |
func main() | 程序入口函数,必须在main包中 |
fmt.Println() | 打印输出并换行 |
4.3 运行程序
方法一:直接运行
go run main.go输出:
Hello, Go!方法二:编译后运行
# 编译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框架:
go get github.com/gin-gonic/gin然后就可以在代码里用了:
packagemainimport"github.com/gin-gonic/gin"funcmain(){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 没有安装成功
- 环境变量没配置正确
解决方案:
# 检查 Go 是否安装ls/usr/local/go/bin/go# 检查 PATHecho$PATH|grepgo确保$GOROOT/bin在PATH中。
6.2 问题2:下载依赖很慢或超时
问题描述:执行go get时很慢或报错timeout。
原因分析:默认从proxy.golang.org下载,国内访问慢。
解决方案:
设置国内代理:
goenv-wGOPROXY=https://goproxy.cn,direct6.3 问题3:go mod init报错
问题描述:执行go mod init时报错。
原因分析:
- 当前目录已经有
go.mod文件 - 没有给模块名
解决方案:
# 正确用法go mod init myproject# 如果是 GitHub 项目go mod init github.com/username/myproject6.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连支持一下,创造不易您们的支持是我的动力🌟