1.1 认识 Go 语言
本节没有代码,5 分钟读完,让你知道自己要学的是个什么东西、为什么值得学。
Go 是什么?
Go(也叫 Golang)是 Google 在 2009 年发布的一门开源编程语言,由 Robert Griesemer、Rob Pike 和 Ken Thompson(C 语言和 Unix 的作者之一)设计。
用一句话概括 Go 的特点:
像 Python 一样好写,像 C 一样快跑。
为什么要学 Go?
1. 简单,真的简单
Go 的关键字只有 25 个(Java 有 50+,C++ 有 90+)。语言设计者刻意做减法:没有类继承、没有复杂的语法糖、一种循环写法、一种代码格式。这意味着:
- 学习曲线平缓,新手一两周就能写出能用的程序
- 别人的代码你基本都能看懂,因为大家写出来的 Go 都长得差不多
2. 性能好
Go 是编译型语言,代码直接编译成机器码运行,速度接近 C/C++,远快于 Python、Ruby 等解释型语言。
3. 并发是亲儿子
其他语言里"多线程编程"是高级话题,在 Go 里开一个并发任务只需要一个关键字 go:
go doSomething() // 这行代码就开启了一个并发任务
这是 Go 最出名的能力,我们会在第五章详细学习。
4. 部署极其方便
Go 编译产物是一个独立的可执行文件,不依赖任何运行时环境。把这个文件拷到服务器上直接就能跑——不需要装解释器、不需要装虚拟机、不需要装一堆依赖。
5. 就业市场需求大
Go 是云计算和后端领域的主流语言。这些知名项目都是 Go 写的:
- Docker(容器)
- Kubernetes(容器编排,云原生的基石)
- etcd(分布式存储)
- 国内大量互联网公司(字节跳动、腾讯、B 站、七牛等)的后端服务
Go 适合做什么?
| 领域 | 说明 |
|---|---|
| 后端服务 / Web API | Go 最主流的用途 |
| 云原生 / 基础设施 | Docker、K8s 生态几乎全是 Go |
| 命令行工具 | 编译成单文件,分发方便 |
| 网络编程 / 中间件 | 消息队列、代理、网关等 |
| 微服务 | 天生适合 |
Go 不太适合做什么:桌面 GUI 应用、移动 App(虽然能做但不是主流选择)、对延迟极端敏感的场景(如高频交易,因为 Go 有垃圾回收)。
Go 代码长什么样?
先睹为快(现在看不懂完全没关系):
package main
import "fmt"
func main() {
for i := 1; i <= 3; i++ {
fmt.Println("第", i, "次说:你好,Go!")
}
}
运行结果:
第 1 次说:你好,Go!
第 2 次说:你好,Go!
第 3 次说:你好,Go!
是不是看起来还挺清爽的?
新手常见疑问
Q:我没学过其他编程语言,能直接学 Go 吗? 可以。Go 语法简单,是不错的第一门语言。本教程也是按零基础的节奏写的。
Q:Go 和 Golang 是两个东西吗? 是同一个东西。官方名字是 Go,但因为 "Go" 这个词太常见不好搜索,大家习惯用 "Golang"(来源于官网域名 golang.org)作为搜索关键词。
Q:需要多好的电脑? 普通电脑即可。Go 的编译器非常快,对硬件没什么要求。
小结
- Go 是一门简单、快速、擅长并发、部署方便的编译型语言
- 主要用于后端服务、云原生、命令行工具
- 语法极简,非常适合新手入门
下一节我们就把 Go 环境装起来:1.2 安装 Go 开发环境