Go 安装
版本选择:推荐使用最新稳定版本,Go 每年发布 2 个主要版本
环境变量配置
Go 环境变量设置
GOPATH(工作区)
# Windows
set GOPATH=D:\Go\workspace
# Linux/Mac
export GOPATH=$HOME/go
GO111MODULE(模块支持)
# Go 1.16+ 默认开启,无需设置
go env -w GO111MODULE=on
# 配置国内代理
go env -w GOPROXY=https://goproxy.cn,direct
Go Modules 配置
配置国内代理
使用国内代理可以大幅提升模块下载速度
1. 配置 GOPROXY
# Windows (PowerShell)
go env -w GOPROXY=https://goproxy.cn,direct
# Linux/Mac
export GOPROXY=https://goproxy.cn,direct
2. 常用代理地址
| 代理 | 地址 |
|---|---|
| 七牛云 | https://goproxy.cn |
| 阿里云 | https://mirrors.aliyun.com/goproxy/ |
| 腾讯云 | https://mirrors.cloud.tencent.com/go/ |
| 官方代理 | https://proxy.golang.org |
3. 查看当前配置
go env GOPROXY
go env -w GOPROXY=https://goproxy.cn,direct
开发工具
VS Code(强烈推荐)
最流行
免费
配合 Go 插件使用
必备插件:
Go (Go Team at Google) - 官方插件
Go Test Explorer - 测试管理
Go Outlines - 代码大纲
插件自动安装工具:
# 打开命令面板 Ctrl+Shift+P
# 输入:Go: Install/Update Tools
# 选择全部安装
GoLand(专业选择)
Vim/Neovim
终端编辑器,配合 vim-go 插件
- 轻量快速
- 高度可定制
- 终端友好
# 使用 vim-plug 安装
Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }
LiteIDE
Go 常用命令
基础命令
# 创建模块
go mod init 项目名
# 下载依赖
go get 包名
go mod tidy
# 编译
go build main.go
go build -o app.exe
# 运行
go run main.go
# 安装到 GOPATH
go install
# 格式化代码
go fmt ./...
# 运行测试
go test -v
go test -cover
# 查看版本
go version
go env
高级命令
# 交叉编译
GOOS=linux GOARCH=amd64 go build
GOOS=windows GOARCH=amd64 go build
# 编译优化
go build -ldflags="-s -w"
# 生成文档
go doc 包名
go doc 函数名
# 代码分析
go vet ./...
go test -race
# 依赖图
go mod graph
go list -m all
常用 Go 库
Web 框架
- • gin - 高性能 HTTP 框架
- • echo - 轻量 Web 框架
- • beego - 全功能框架
- • fiber - Express 风格
数据库
- • gorm - ORM 库
- • sqlx - SQL 扩展
- • go-redis - Redis 客户端
- • mongo-driver - MongoDB
工具库
- • viper - 配置管理
- • zap - 日志库
- • cobra - CLI 框架
- • testify - 测试库
并发
- • errgroup - 错误处理
- • workerpool - 工作池
- • go-flags - 标志解析
中间件
- • jwt-go - JWT 认证
- • cors - CORS 处理
- • rate - 限流
数据处理
- • json-iterator - JSON 解析
- • goquery - HTML 解析
- • excelize - Excel 处理
常见问题
配置国内代理可以大幅提升速度:
# 配置七牛云代理
go env -w GOPROXY=https://goproxy.cn,direct
# 或配置阿里云代理
go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct
# 查看配置
go env GOPROXY
| 对比项 | GOPATH | Go Modules |
|---|---|---|
| 依赖管理 | 全局依赖 | 项目级依赖 |
| 版本控制 | 不支持 | 支持语义化版本 |
| 推荐度 | 不推荐(旧) | 强烈推荐 |
建议:Go 1.11+ 使用 Go Modules,无需设置 GOPATH
Go 支持一键交叉编译,无需额外工具:
# Windows 下编译 Linux 版本
set GOOS=linux
set GOARCH=amd64
go build -o app_linux
# Mac/Linux 下编译 Windows 版本
GOOS=windows GOARCH=amd64 go build -o app.exe
# 常用目标平台
# GOOS: linux, windows, darwin, freebsd
# GOARCH: amd64, 386, arm, arm64
环境验证
# 验证 Go 安装
go version
# 查看环境配置
go env
# 创建测试项目
mkdir test-go && cd test-go
go mod init test-go
# 创建 main.go 并运行
echo 'package main
import "fmt"
func main() { fmt.Println("Hello Go!") }' > main.go
go run main.go