本文是「vangoleo的Go语言学习笔记」系列文章之一。

官网: 
第二步:根据操作系统下载对应的软件包进行安装。
Golang对主流的操作系统都有支持,比如Windows,MacOS和Linux等。
本系列教程中,我会使用MacOS操作系统,所以选择下载“Apple macOS”。大家要根据自己的操作系统进行下载。
下载Go
第三步:安装Go。
在MacOS下安装Go很简单,就是标准的DMG文件安装,直接“下一步”就可以了。
第四步:确认Go是否安装成功。
运行命令“go version”,会输出类似于“go version go1.12.9 darwin/amd64”的内容。请确保包没有任何错误发生。

配置环境

和其他开发语言类似,安装了Go之后,还需要对开发环境进行相应的配置。比如在Java中,需要配置JAVA_HOME,MAVEN等。
Go开发相关的环境变量如下:

GOROOT

GOROOT是Go的安装路径。Mac中安装Go会自动配置好GOROOT,路径为/usr/local/go。GOROOT在绝大多数情况下都不需要修改。以下是GOROOT目录的内容(已省略了一些无关信息):

tree -L 2 /usr/local/go  ./ ├── bin │   ├── go │   └── gofmt ├── doc │   ├── articles │   └── docs.html ├── src │   ├── errors │   ├── fmt │   ├── log │   └── os

可以看到GOROOT下有bin,doc和src目录。bin目录下有我们熟悉的go和gofmt工具。可以认为GOOROOT和Java里的JDK目录类似。

GOPATH

GOPATH是开发时的工作目录。用于:

关于GOPATH需要特别注意。在GO的1.11版本之前,GOPATH是必需的,且所有的Go项目代码都要保存在GOPATH目录下。Go的1.11版本之后,GO官方引入了Go Module。使用Go Module管理的项目可以放在GOPATH目录外面。

使用GOPATH时,GO会在以下目录中搜索包:

  1. GOROOT/src:该目录保存了Go标准库代码。
  2. GOPATH/src:该目录保存了应用自身的代码和第三方依赖的代码。

假设程序中引入了如下的包:

import "github.com/tom/hello-go/foo/bar"

第一步:Go会先去GOROOT的scr目录中查找,很显然它不是标准库的包,没找到。
第二步:继续在GOPATH的src目录去找,准确说是GOPATH/src/github.com/tom/hello-go/foo/bar这个目录。如果该目录不存在,会报错找不到package。在使用GOPATH管理项目时,需要按照GO寻找package的规范来合理地保存和组织Go代码。

Go的这个“将所有代码都放置在GOPATH中”的设计,的确是和其他主流语言很不一样。不管Go官方是出于什么考虑,这个设计在实际使用中,的确给开发者造成了很大的不便和理解上的困难。甚至直接劝退了很多Go的初学者。
万幸的是,Go Module正式发布了。Go Module的发布解决了困扰Go语言长达十年的代码组织,依赖管理问题。

说明:关于GOPATH和Go Module的历史渊源,详细使用,会在另一篇进行说明。本文还是聚焦在Hello World入门。

另外,由于某些原因,Go的某些托管在Google仓库中的代码在国内是无法访问的。如果使用Go Module,我们可以设置GOPROXY,让Go从GOPROXY下载Go代码,速度更快。国内用户可以设置GOPROXY为https://goproxy.cn,使用如下命令来设置GOPROXY:

export GOPROXY=https://goproxy.cn

关于环境配置,总结下来就是: