讲解
Go(常称 Golang)是 Google 在 2009 年开源的静态类型编译型语言,设计目标是「既有接近 C 的运行效率,又有接近脚本语言的开发效率」。它的语法克制、工具链统一,内置了垃圾回收和一流的并发支持,广泛用于云基础设施、命令行工具和后端服务——Docker、Kubernetes、etcd 都是用 Go 写的。
安装 Go 最简单的方式是去官网 go.dev 下载对应平台的安装包;macOS 用户也可以直接用 Homebrew。装完后终端里输入 go version,能看到版本号就说明环境就绪。Go 的安装自带了编译器、格式化工具、测试工具、文档工具等一整套工具链,不需要再装任何插件就能开始写代码,这是 Go 相比很多语言省心的一点。
写 Go 代码只需要一个文本编辑器,VS Code(装 Go 扩展)、GoLand 或任何顺手的编辑器都可以。Go 社区有一条重要约定:代码风格不由人争论,交给官方格式化工具 gofmt 裁决——保存时让编辑器自动执行 gofmt,全世界的 Go 代码就长得几乎一样。本教程的每个示例都是完整可运行的程序,你可以把它们存成 main.go 后用 go run main.go 直接运行,跟着敲一遍效果最好。
示例
安装与验证(命令行操作,不必逐字照抄,按你的平台选择):
# macOS(Homebrew)
brew install go
# 验证安装
go version
第一个环境自检程序:打印当前 Go 版本、操作系统和处理器架构:
package main
import (
"fmt"
"runtime"
)
func main() {
fmt.Println("Go 版本:", runtime.Version())
fmt.Println("操作系统:", runtime.GOOS)
fmt.Println("处理器架构:", runtime.GOARCH)
}
再来一个感受编译型语言速度的小程序,顺便看看本机的 CPU 核心数:
package main
import (
"fmt"
"runtime"
)
func main() {
fmt.Println("你好,Go!")
fmt.Printf("本机 CPU 核心数: %d\n", runtime.NumCPU())
}
常见坑
- 把 GOROOT 和 GOPATH 当成必配项:早期教程让你配置这两个环境变量,现代 Go(1.11 引入模块之后)默认安装即可工作,不需要手动配置。只有在自定义安装路径时才可能碰到 GOROOT。
- 从第三方网站下载来路不明的安装包:Go 只从 go.dev 或系统包管理器安装。第三方镜像站可能夹带旧版本甚至恶意修改。
- 以为写 Go 必须配复杂的 IDE:Go 的工具链在命令行里就是完整的,编辑器只是锦上添花。新手先用顺手编辑器加终端即可,别在环境配置上耗掉热情。
- 跳过 gofmt:手写混乱缩进的 Go 代码在社区里会被直接要求「先 gofmt」。从第一天起就让编辑器保存时自动格式化。
小结
Go 安装简单、工具链完整,go version 能跑通就具备了学习条件;记住 gofmt 是官方统一的代码风格。下一节正式写第一个 Go 程序,理解 package、import 和 main 函数。