Avatar

本节包括 Go 的环境配置、项目结构与常用命令等内容。

Part 1 Go 环境搭建与快速上手
1139 words

1 Go 环境搭建h2

你可以在这里找到 Go 的安装包及安装步骤。

1.1 Windowsh3

对于 Windows,只需要找到下载页面提供的.msi 文件安装即可。在终端中输入go version ,当输出以下内容时,安装成功。

go version go1.25.5 windows/amd64

1.2 Linuxh3

对于 Linux,我们需要从源码安装。下载对应的.tar.gz 文件,并解压至/usr/local/目录(注意版本):

Terminal window
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.25.5.linux-amd64.tar.gz

/usr/local/go/bin 目录添加至 PATH 环境变量:

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

在终端中输入go version,当输出以下内容时,安装成功。

go version go1.25.5 windows/amd64
TIP

为了使命令永久生效,还需要编辑~/.bash_profile 文件。将以下命令添加到bash_profile的最后一行:

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

然后执行source ~/.bash_profile即可永久生效。

2 第一个 Go 程序h2

2.1 项目初始化h3

新建项目目录./hello-go,并在该目录中运行go mod init hello-go初始化项目。

项目初始化会生成一个go.mod文件,其内容为:

module hello-go
go 1.25.5

module hello-go声明了这个项目(模块,Module)的唯一名称,go 1.25.5则告诉 Go 编译器这个项目应该使用哪个版本进行编译。

Go 项目的命名规范

在现代 Go 开发中通常会采用github.com/用户名/项目名的方式进行命名:

Terminal window
go mod init github.com/yoyoyoake/hello-go

这种命名方式是 Go 语言社区的一种标准化建议。它主要为了以下两点考虑:

  • 避免命名空间冲突

因为 GitHub 的用户名是全球唯一的,所以 github.com/yoyoyoake/hello-go 这个路径在全互联网也是唯一的。

  • 表明代码托管地址

Go 语言没有像 PyPI 或 NPM 那样的统一中心化服务器。Go 的包管理是去中心化的。当需要安装某个模块时,Go 的模块管理器就会通过这个路径找到模块的源代码进行安装。

不过,即使你的代码只存在于本地硬盘,也建议按此方式命名。这只是为以后可能发生的上传做准备,同时也有助于养成良好的命名习惯。

2.2 项目入口h3

对于每个.go文件,都要在非注释的第一行声明这个文件属于哪个包(Package)。而在 Go 中,一个可执行程序的入口必须满足以下两个条件:

  1. 包声明必须是 main

  2. 必须有一个 func main()

    在这个 main 包下,必须有一个名为 main 的函数。它没有参数,也没有返回值。

因此,新建一个main.go文件作为项目入口:

hello-go/main.go
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
Go 的文件名和目录名

Go 的项目入口和文件名无关。无论是main.go app.go run.go都不影响。只要文件开头写了 package main并且存在main()函数,Go 编译器就能找到它并作为项目入口。

不过,按照现代开发规范,同一个目录下的.go文件必须属于同一个包。例如,我在hello-go/utils/math.go中写了package utils,则hello-go/utils下的其他所有.go文件都要声明package utils

2.3 运行并编译项目h3

当我们写好代码后,只需要运行go run .即可运行项目:

Hello, World!

或者运行go build将其编译为可执行程序,将会在当前目录下生成与项目同名的可执行文件。

Terminal window
./hello-go
Hello, World!

3 常用命令h2

3.1 项目与模块管理h3

  • go mod init <模块名>

    在当前目录下创建go.mod文件,把当前目录变成一个模块。

  • go mod tidy

    整理依赖,自动下载缺少的包,并删除go.mod中声明但未被使用的包。

  • go get <路径>

    下载并添加特定的第三方依赖。

3.2 日常开发调试h3

  • go run .

    编译并直接运行项目。

  • go fmt

    Go 官方强制统一了代码风格,运行该命令以自动格式化代码。

3.3 编译与安装h3

  • go build

    编译代码,并在当前目录下生成一个二进制可执行文件,可以在无 Go 运行时的环境中运行。

  • go install

    例如,当你写了一个很有用的工具,想在全局任何地方都能调用它。运行该命令即可编译并把生成的可执行文件放到你的GOPATH/bin目录下,以供全局运行。

3.4 辅助与环境检查h3

  • go env

    查看当前 Go 的所有环境变量(如 GOPATH, GOROOT, GOPROXY)。

  • go version

    查看当前的 Go 版本。

  • go help <command>

    查看某个命令的具体用法。