Go 语言简介
Go(或 Golang)是 Google 开发的开源编程语言,于 2009 年正式发布,2012 年发布 1.0 稳定版。它以「简洁语法 + 原生并发 + 快速编译」见长,被广泛用于后端服务、微服务、云原生工具链等场景。
Go 语言的核心特点
天生支持并发
Go 从底层原生支持并发,无须第三方库,也无须开发者手工管理线程。并发模型基于 goroutine:一种由 Go 运行时调度的轻量「协程」,而非操作系统线程。
开启一个 goroutine 的初始栈大小约 2 KB,可以轻松创建数百万个而不耗尽资源。goroutine 的主要特点:
- 可增长的分段堆栈——只在需要时使用更多内存。
- 启动时间比线程快得多。
- 通过
channel进行安全通信。 - 共享数据结构时无需互斥锁(使用 CSP 模型)。
语法简洁,学习曲线平缓
Go 去掉了 C/C++ 里多余的括号和复杂语法,循环只有 for 一种写法,就能覆盖 while、do-while 等各种场景。go fmt 工具统一代码风格,消灭团队间因格式引发的争议。
开发效率与执行效率兼得
Go 编译为原生机器码,性能接近 C;同时保持了接近 Python 的开发速度——编译快、工具链完整、标准库丰富。
Go 适合做什么
- 后端 / 微服务:高并发 API 服务、gRPC 接口
- 分布式系统:消息队列、一致性协议实现
- DevOps 工具链:Docker、Kubernetes、Terraform 均用 Go 编写
- 网络编程:代理、网关、协议解析
- 内存 KV 数据库:如 BoltDB、LevelDB
- 云原生基础设施:Operator、CRD 控制器
常用 go 命令速查
| 命令 | 说明 |
|---|---|
go env | 打印 Go 环境变量 |
go run <file> | 编译并运行源码文件(不生成二进制) |
go build | 编译当前包或指定包,生成可执行文件 |
go install | 编译并将可执行文件安装到 $GOPATH/bin |
go get | 下载并安装指定包及其依赖(模块模式下使用 go get ./...) |
go test | 运行测试用例 |
go fmt | 格式化代码 |
go vet | 静态检查常见错误 |
go doc <pkg> | 查看包文档 |
go clean | 删除编译产生的临时文件 |
go tool pprof | 交互式性能分析 |
最后更新于