Go 零基础教程

Go 开发环境搭建

配置 Go 开发环境是你成为优秀 Go 程序员的关键第一步。一个配置得当的环境能让你高效地编写、编译和执行 Go 代码

本章将一步步引导你完成 Go 的安装、工作区的配置以及必备工具的设置。学完本章,你将拥有一个功能完备的 Go 开发环境,随时可以开始编写你的第一个程序。

1. 安装 Go 语言

第一步是下载并安装适合你操作系统的 Go 发行版。Go 官方提供了 Windows、macOS 和 Linux 的预编译二进制安装包。

1.1 下载 Go

  1. 访问 Go 官方下载页面: https://go.dev/dl/
  2. 根据你的操作系统选择合适的安装程序:
    • Windows: 下载 .msi 安装程序。
    • macOS: 下载 .pkg 安装程序。
    • Linux: 下载 .tar.gz 压缩包。

1.2 在 Windows 上安装

  1. 双击下载的 .msi 文件启动安装。
  2. 按照屏幕上的提示进行操作。默认安装路径为 C:\Program Files\Go,通常建议保持默认设置。
  3. 安装程序会自动将 Go 添加到系统的 PATH 环境变量中。如果没有自动添加,你需要手动配置(参考下文“配置 GOPATH 环境变量”一节中的界面路径)。
  4. 重启电脑或打开一个全新的命令提示符(cmd)窗口,以确保对 PATH 变量的更改生效。

1.3 在 macOS 上安装

  1. 双击下载的 .pkg 文件启动安装。
  2. 按照屏幕提示操作。默认安装路径为 /usr/local/go
  3. 安装程序通常会自动配置环境变量。如果没有,你需要手动将 Go 的二进制文件目录添加到 PATH 中。打开终端,在你的 ~/.zshrc~/.bash_profile 文件末尾添加以下代码:
export PATH=$PATH:/usr/local/go/bin

打开一个新的终端窗口,或者运行配置刷新命令(例如:source ~/.zshrc)使更改生效。

1.4 在 Linux 上安装

1. 将下载的 .tar.gz 压缩包解压到 /usr/local 目录下:

sudo tar -C /usr/local -xzf go<版本号>.linux-<架构>.tar.gz
注意: 请将 <版本号> 替换为实际下载的版本号,将 <架构> 替换为你的系统架构(例如 amd64)。

2. 将 Go 的二进制文件目录添加到 PATH 环境变量中。打开 ~/.profile~/.bashrc 文件,添加以下内容:

export PATH=$PATH:/usr/local/go/bin

3. 打开新的终端窗口,或运行 source ~/.profile 应用更改。

2. 验证安装

安装完成后,打开命令提示符或终端,运行以下命令来验证 Go 是否正确安装:

go version

如果系统返回了已安装的 Go 版本信息(例如 go version go1.21.5 linux/amd64),说明安装成功。如果你看到类似“go command not found(找不到 go 命令)”的错误提示,请回头仔细检查你的 PATH 环境变量是否配置正确。

3. 配置 Go 工作区 (Workspace)

Go 工作区就是你在电脑上存放 Go 源代码的目录。正确设置工作区非常重要,这关系到 Go 编译器能否准确找到你的包(packages)和依赖项。

3.1 GOPATH 环境变量

GOPATH 环境变量用于指定 Go 工作区的位置。虽然在使用 Go Modules 的现代 Go 版本中,严格来说不再强制要求设置 GOPATH,但了解它依然是一个好习惯,特别是在维护老项目或希望集中管理 Go 项目时。

  1. 选择一个目录作为你的 Go 工作区。常见的选择是用户目录下的 go 文件夹:$HOME/go(在 Windows 上是 %USERPROFILE%\go)。
  2. GOPATH 环境变量设置为该目录:

在 Windows 上:

  • 打开“系统属性”对话框(在开始菜单搜索“环境变量”)。
  • 点击“环境变量”按钮。
  • 在“用户变量”或“系统变量”下,点击“新建...”。
  • 变量名输入 GOPATH,变量值输入你选择的工作区路径(例如 C:\Users\你的名字\go)。
  • 点击“确定”保存。

在 macOS 和 Linux 上:

  • 打开 shell 配置文件(如 ~/.zshrc~/.bash_profile)。
  • 添加以下代码:
export GOPATH=$HOME/go
  • 保存文件并打开新终端,或运行 source ~/.zshrc

3.2 go.mod 文件与 Go Modules

Go Modules 是 Go 项目现代化的依赖管理方式。它打破了代码必须放在 GOPATH 内的限制,并提供了更强大的版本控制和依赖管理能力。

  1. 在你的 GOPATH 之外创建一个新的项目目录。例如,在用户主目录下创建一个名为 myproject 的文件夹。
  2. 在终端中进入该项目目录。
  3. 运行以下命令来初始化一个新的 Go 模块:
go mod init example.com/myproject

说明: 请将 example.com/myproject 替换为你项目的导入路径。通常这是一个指向你项目代码仓库的 URL(如 GitHub 链接)。如果你还没有代码仓库,可以使用类似 example.com/myproject 的占位符。

该命令会在你的项目目录下生成一个 go.mod 文件,Go 将用它来追踪和记录项目的依赖关系。

3.3 目录结构参考

一个典型的、基于 Go Modules 的工作区或项目目录结构如下所示:

myproject/
├── go.mod          # Go 模块定义文件 (记录项目依赖)
├── go.sum          # 依赖项的校验和 (确保依赖未被篡改)
├── main.go         # 你的主程序源代码文件
└── ...             # 其他源代码文件和目录

4. 设置代码编辑器或 IDE

虽然用简单的记事本也能写 Go 代码,但使用专门的 IDE(集成开发环境)或带有 Go 插件的代码编辑器,能极大提升开发效率。

4.1 主流 Go 编辑器与 IDE

  • Visual Studio Code (VS Code): 一款免费、开源的编辑器。通过安装微软官方的 Go 插件,它可以提供代码补全、代码检查(Linting)、调试等卓越功能。
  • GoLand: 由 JetBrains 出品的商业级专业 Go 开发 IDE。提供高级代码分析、重构和强大的调试功能。
  • Sublime Text: 流行的轻量级编辑器,可通过安装 GoSublime 插件支持 Go 开发。
  • Vim: 强大的命令行文本编辑器,可通过 vim-go 插件支持 Go。

4.2 配置 VS Code 进行 Go 开发

  1. 前往 https://code.visualstudio.com/ 下载并安装 VS Code。
  2. 打开 VS Code 插件市场(搜索 "Go"),安装由 Microsoft 提供的 Go 插件。
  3. 插件安装后,VS Code 可能会在右下角弹窗提示你安装额外的 Go 工具。点击 "Install All" (全部安装)。这些工具是实现代码补全、格式化等功能的核心。
  4. 配置 VS Code 设置。你可以通过编辑 settings.json 文件来自定义行为。以下是强烈推荐的 Go 开发配置:
{
    "go.formatTool": "goimports",
    "go.lintTool": "golangci-lint",
    "go.useLanguageServer": true,
    "gopls": {
        "usePlaceholders": true,
        "completeUnimported": true
    }
}
  • go.formatTool: 指定代码格式化工具。goimports 不仅能格式化代码,还会自动帮你添加或删除 import 导包语句。
  • go.lintTool: 指定代码检查工具。golangci-lint 是目前最流行且最全面的 linter。
  • go.useLanguageServer: 开启 Go 语言服务器 (Language Server),提供更高级的补全和诊断功能。
  • gopls: Go 语言服务器的具体配置。usePlaceholders 会在补全函数时自动填入参数占位符,completeUnimported 会智能提示尚未导入的包。

4.3 配置 GoLand

GoLand 属于开箱即用的 IDE,通常不需要繁琐的额外插件配置。

  1. 前往 https://www.jetbrains.com/go/ 下载并安装。
  2. 打开 GoLand 并新建一个 Go 项目。
  3. 它会自动检测系统中的 Go SDK(软件开发工具包)并配置项目。
  4. 你可以通过菜单栏的 File -> Settings(macOS 为 GoLand -> Preferences)调整代码风格、主题和快捷键等偏好设置。

5. 必备的 Go 工具 (CLI)

安装 Go 后,你的系统里自动包含了一套极其强大的命令行工具。它们用于代码构建、测试和包管理。

5.1 go fmt

go fmt 工具会根据 Go 官方的代码风格规范,自动格式化你的源代码。在将代码提交到仓库之前运行此命令是个极佳的习惯,这能保证所有人的代码风格高度一致。

  • 格式化单个文件:
go fmt myfile.go
  • 格式化当前目录下的所有 Go 文件:
go fmt ./...

5.2 go run

go run 工具会直接编译并运行你的 Go 程序。它非常适合在开发阶段快速测试代码,因为它不会在当前目录下生成多余的可执行文件。

  • 运行程序:
go run main.go

5.3 go build

go build 工具用于将 Go 程序编译成独立的可执行文件。你可以直接把这个生成的文件发给其他人,他们即使电脑上没装 Go 也能直接运行。

  • 编译程序:
go build main.go

这会在当前目录下生成一个名为 main 的文件(在 Windows 系统上是 main.exe)。

5.4 go mod

go mod 工具是管理 Go Modules(模块与依赖)的核心。

  • go mod init: 我们已经用过它来初始化模块。
  • go mod tidy: 自动整理依赖。它会清理 go.mod 文件中未使用的依赖,并下载补齐缺失的依赖。
  • go mod vendor: 将项目的所有依赖项复制到项目根目录下的 vendor 文件夹中。这能确保在没有网络的情况下项目依然可以编译。
  • go mod download: 将 go.mod 中列出的模块下载到本地的模块缓存区中。