目前,Go官方工具链中提供的工具是使用的最广泛的Go开发工具。 《Go语言101》所有中所有的实例代码都使用标准编译器编译验证过。

本文将介绍如何配置Go开发环境和如何使用Go官方工具链中的go命令运行简单的Go程序。 各种go子命令也将获得简单的介绍。

安装Go官方工具链

请从国际官网或者国内官网下载Go官方工具链, 并按照下载页面中的说明安装Go官方工具链。

Go官方工具链的版本和其所支持的最高Go语言版本是一致的。 比如,Go官方工具链1.15.x支持从1.0到1.15的所有Go语言版本。

为了从任意目录运行Go官方工具链中工具命令(主要各种go子命令), Go官方工具链安装目录下的bin子目录路径必须配置在PATH环境变量中。

一些老的Go官方工具链版本可能需要配置GOROOTGOPATH环境变量。 当前最新的Go官方工具链版本对这些没有做强制要求。 GOPATH环境变量的默认值为当前用户的HOME目录下的名为go文件夹对应的目录。 GOPATH环境变量中可以指定多个目录。

GOBIN环境变量用来指定某些go子命令(比如go install,见下)产生的二进制可执行文件应该存储在何处。 如果此环境变量未指定,go命令将使用GOPATH环境变量中指定的第一个路径下的bin子目录路径来存储这些可执行文件。 此目录的路径需配置在PATH环境变量中,以便从任意目录运行这些可执行文件。

在Go官方工具链1.11版本之前,go命令推荐所有的Go代码都放在GOPATH环境变量中指定的任一个路径下的src子目录中,尤其是依赖于其它第三方代码库包的Go项目代码。 代码库包将在后面的代码包和包引入一文中详述。

Go官方工具链1.11引入了一个试验性的特性:Go模块(Go modules)。 此特性让我们得以自由地将我们的Go项目代码放置在任何目录下。 我们可以从此官方维基页面得到更多关于Go模块的信息。

注意,从Go官方工具链1.13开始,Go模块模式已成为Go项目开发中的推荐模式。 旧的GOPATH模式将不再推荐。GOPATH环境变量的意义和必要性将大大减弱,甚至逐渐消失。 另一方面,GOBIN环境变量的重要性将提升,因为我们仍需要一个目录路径用来存储某些go子命令产生的二进制可执行文件。

Go模块模式将在下一个版本(1.16)中被默认支持。

最简单的Go程序

让我们写一个简单的Go程序,并且学习如何运行之。

下面的程序应该是最简单的Go程序。

package main

func main() {
}

在此程序中,单词packagefunc是两个关键字。 两个main是两个标识符。 标识符和关键字将在后续的一篇文章中讲解。

此程序的第一行指定了当前源代码文件所处的包的包名(此处为main)。 第二行是一个空行,用来增强可读性。 第三和第四行声明了一个名为main的函数。 此函数为程序的入口函数。

运行一个Go程序

Go官方工具链工具要求所有的Go源代码文件必须以.go后缀结尾。 这里,我们假设上面展示的最简单的Go程序存放在一个名叫simplest-go-program.go的文件中。

打开一个终端(控制台)并进入上述源文件所在的目录,然后运行

$ go run simplest-go-program.go

什么也没输出?是的,此程序不做什么有实质意义的事儿。

如果代码中有语法错误,这些错误将输出在终端中。

如果一个程序的main包中有若干Go源代码文件,我们也可以使用下面的命令运行此程序。

$ go run .

注意:go run子命令并不推荐在正式的大项目中使用。go run子命令只是一种方便的方式来运行简单的Go程序。 对于正式的项目,最好使用go build或者go install子命令来编译生成可执行程序文件。

更多go子命令

上面提到的三个go子命令(go rungo buildgo install) 将只会输出代码语法错误。它们不会输出可能的代码逻辑错误(即警告)。 go vet子命令可以用来检查可能的代码逻辑错误。

我们可以使用go fmt子命令来用同一种代码风格格式化Go代码。

我们可以使用go get子命令将一个远程Go代码库拉取到本地以便将其做为第三方Go包引入并使用其中的资源。 go get子命令需要首先安装相应的代码版本管理工具。

我们可以使用go test子命令来运行单元和基准测试用例。

我们可以使用go doc子命令来查看Go代码库包的文档。

从Go官方工具链1.11版本开始,我们可以运行go mod子命令来管理包依赖。

我们可以运行go help aSubCommand来查看一个子命令aSubCommand的帮助信息。

运行不带参数的go命令将会列出所有支持的go子命令。

《Go语言101》系列文章将不再对各种go子命令做更多的解释。 请阅读官方文档墙外版)以获取更多信息。

查看Go文档

我们可以在Go官网golang.org墙内版)阅读Go官方文档。

我们也可以使用命令go get -u golang.org/x/tools/cmd/godoc来安装godoc程序,然后运行godoc -http=:9999来开启官网的一个本地镜像(localhost:9999)来阅读Go官方文档。此godoc工具也可用来查看本地Go项目代码的文档。

另一款用来查看本地Go项目代码文档的工具是Golds(由本书作者老貘开发)。 此工具将列出类型的实现关系,并且支持良好的代码阅读体验。 我们可以使用命令go get -u go101.org/golds来安装Golds(目前,在安装之前需要临时将GO111MODULE环境变量设为on)。 我们也可以将Golds项目的代码克隆下来,然后运行go install来安装Golds。 安装完成之后,我们可以运行golds std来阅读标准库的文档。

文档更新时间: 2020-12-19 15:42   作者:kuteng