
1.2 Go语言安装
要用Go语言来进行开发,需要先搭建开发环境。Go语言支持以下系统:
■ Linux
■ FreeBSD
■ Mac OS X(也称为Darwin)
■ Windows
首先需要下载Go语言安装包,下载地址为https://golang.org/dl/,国内下载地址是https://golang.google.cn/dl/。
1.源码编译安装
Go语言是谷歌在2009年发布的第二款开源编程语言。经过几年的版本更迭,目前Go已经发布了1.11版本,UNIX/Linux/Mac OS X和FreeBSD系统下可使用如下源码安装方法。
(1)下载源码包。链接是https://golang.google.cn/dl/go1.11.1.linux-amd64.tar.gz。
(2)将下载的源码包解压至/usr/local目录:
tar-C/usr/local-xzf go1.11.1.linux-amd64.tar.gz
(3)将/usr/local/go/bin目录添加至PATH环境变量:
export PATH=$PATH:/usr/local/go/bin
(4)设置GOPATH、GOROOT环境变量。
GOPATH是工作目录,GOROOT是Go的安装目录,这里为/usr/local/go/。
Mac系统下可以使用以.pkg为扩展名的安装包直接双击来完成安装,安装目录在/usr/local/go/下。
2.Windows系统下安装
在Windows系统下一般采用直接安装,下载go 1.11.1.windows-amd64.zip版本,直接解压到安装目录,如D:\Go,然后把D:\Go\bin目录添加到PATH环境变量中。
另外,还需要设置两个重要环境变量:
GOPATH=D:\goproject
GOROOT=D:\Go\
以上环境变量设置好后,就可以使用Go语言来开发了。
Windows系统也可以选择go1.11.1.windows-amd64.msi,双击运行程序,根据提示来操作。
GOPATH是工作目录,可以有多个,用分号隔开。
GOROOT是安装目录。
按Win+R键打开命令行(注意:设置环境变量后需要重新打开命令行),输入go,出现如下显示,说明Go语言运行环境已经安装成功。


另外,输入go version,可看到安装的Go版本信息,如图1-1所示。

图1-1 go version和go env命令
图1-1中,输入go env命令可以看到用户自己的相关Go环境变量,这里重点关注GOPATH和GOROOT,其他变量暂不用深入了解。
在本书中,所有代码和标准库的讲解都基于Go 1.11版本,还没有升级的用户请及时升级。
$GOPATH允许有多个目录,当有多个目录时,请注意分隔符,Windows中的分隔符是分号“;”。当有多个$GOPATH时默认将go get命令获取的包存放在第一个目录下。
$GOPATH目录下约定有三个子目录。
■ src存放源代码(如.go, .c, .h, .s等文件)。按照Go默认约定,src目录是go run,go install等命令的当前工作路径(即在此路径下执行上述命令)。src也是用户代码存放的主要目录,所有的源码都放在这个目录下面,一般一个项目和一个目录对应。
■ pkg存放编译时生成的中间文件(比如:.a)。
■ bin存放编译后生成的可执行文件。
接下来就可以试试代码编译运行了。
在本书中,所有示例代码都放在$GOPATH目录下的src\go42目录中,本书的第一个例子文件名为test.go,代码如下:

使用go run命令执行以上代码,程序输出如下:
