本节包括 Go 的环境配置、项目结构与常用命令等内容。
1 Go 环境搭建h2
你可以在这里找到 Go 的安装包及安装步骤。
1.1 Windowsh3
对于 Windows,只需要找到下载页面提供的.msi 文件安装即可。在终端中输入go version ,当输出以下内容时,安装成功。
go version go1.25.5 windows/amd641.2 Linuxh3
对于 Linux,我们需要从源码安装。下载对应的.tar.gz 文件,并解压至/usr/local/目录(注意版本):
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.25.5.linux-amd64.tar.gz将 /usr/local/go/bin 目录添加至 PATH 环境变量:
export PATH=$PATH:/usr/local/go/bin在终端中输入go version,当输出以下内容时,安装成功。
go version go1.25.5 windows/amd64为了使命令永久生效,还需要编辑~/.bash_profile 文件。将以下命令添加到bash_profile的最后一行:
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-gogo 1.25.5module hello-go声明了这个项目(模块,Module)的唯一名称,go 1.25.5则告诉 Go 编译器这个项目应该使用哪个版本进行编译。
在现代 Go 开发中通常会采用github.com/用户名/项目名的方式进行命名:
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 中,一个可执行程序的入口必须满足以下两个条件:
-
包声明必须是
main -
必须有一个
func main()在这个
main包下,必须有一个名为main的函数。它没有参数,也没有返回值。
因此,新建一个main.go文件作为项目入口:
package main
import "fmt"
func main() { fmt.Println("Hello, World!")}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将其编译为可执行程序,将会在当前目录下生成与项目同名的可执行文件。
./hello-goHello, World!3 常用命令h2
3.1 项目与模块管理h3
-
go mod init <模块名>在当前目录下创建
go.mod文件,把当前目录变成一个模块。 -
go mod tidy整理依赖,自动下载缺少的包,并删除
go.mod中声明但未被使用的包。 -
go get <路径>下载并添加特定的第三方依赖。
3.2 日常开发调试h3
-
go run .编译并直接运行项目。
-
go fmtGo 官方强制统一了代码风格,运行该命令以自动格式化代码。
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>查看某个命令的具体用法。