## 下載
### 下載地址
Go官網下載地址:[https://golang.org/dl/](https://golang.org/dl/)
Go官方鏡像站(推薦):[https://golang.google.cn/dl/](https://golang.google.cn/dl/)
### 版本的選擇
Windows平臺和Mac平臺推薦下載可執行文件版,Linux平臺下載壓縮文件版。

## 安裝
### Windows安裝
此安裝實例以`64位Win10`系統安裝`Go1.11.5可執行文件版本`為例。
將上一步選好的安裝包下載到本地。
雙擊下載好的文件

### Linux下安裝
我們在版本選擇頁面選擇并下載好`go1.11.5.linux-amd64.tar.gz`文件:
~~~bash
wget https://dl.google.com/go/go1.11.5.linux-amd64.tar.gz
~~~
將下載好的文件解壓到`/usr/local`目錄下:
~~~bash
mkdir -p /usr/local/go # 創建目錄
tar -C /usr/lcoal/go zxvf go1.11.5.linux-amd64.tar.gz. # 解壓
~~~
如果提示沒有權限,加上`sudo`以root用戶的身份再運行。執行完就可以在`/usr/local/`下看到go目錄了。
配置環境變量: Linux下有兩個文件可以配置環境變量,其中`/etc/profile`是對所有用戶生效的;`$HOME/.profile`是對當前用戶生效的,根據自己的情況自行選擇一個文件打開,添加如下兩行代碼,保存退出。
~~~bash
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
~~~
修改`/etc/profile`后要重啟生效,修改`$HOME/.profile`后使用source命令加載`$HOME/.profile`文件即可生效。 檢查:
~~~bash
~ go version
go version go1.11.5 linux/amd64
~~~
### Mac下安裝
下載可執行文件版,直接點擊**下一步**安裝即可,默認會將go安裝到`/usr/local/go`目錄下。

### 檢查
上一步安裝過程執行完畢后,可以打開終端窗口,輸入`go version`命令,查看安裝的Go版本。
## 配置GOPATH
`GOPATH`是一個環境變量,用來表明你寫的go項目的存放路徑(工作目錄)。
`GOPATH`路徑最好只設置一個,所有的項目代碼都放到`GOPATH`的`src`目錄下。
Linux和Mac平臺就參照上面配置環境變量的方式將自己的工作目錄添加到環境變量中即可。 Windows平臺按下面的步驟將`D:\code\go`添加到環境變量:
打開資源管理器,然后在左邊的此電腦上點右鍵,選擇屬性,打開系統設置。然后在系統設置界面點擊高級系統設置。

在高級系統設置選項卡里點擊環境變量,然后在打開的環境變量窗口就能看到默認的GOPTAH確實在C盤。選中GOPATH這個變量,然后點擊編輯按鈕。如果沒有就新建一個。


在 Go 1.8 版本之前,`GOPATH`環境變量默認是空的。從 Go 1.8 版本開始,Go 開發包在安裝完成后會為`GOPATH`設置一個默認目錄,參見下表。
**GOPATH在不同操作系統平臺上的默認值**
| 平臺 | GOPATH默認值 | 舉例 |
| :-: | :-: | :-: |
| Windows | %USERPROFILE%/go | C:\\Users\\用戶名\\go |
| Unix | $HOME/go | /home/用戶名/go |
同時,我們將`GOROOT`下的bin目錄及`GOPATH`下的bin目錄都添加到環境變量中。
## Go項目結構
在進行Go語言開發的時候,我們的代碼總是會保存在`$GOPATH/src`目錄下。在工程經過`go build`、`go install`或`go get`等指令后,會將下載的第三方包源代碼文件放在`$GOPATH/src`目錄下, 產生的二進制可執行文件放在`$GOPATH/bin`目錄下,生成的中間緩存文件會被保存在`$GOPATH/pkg`下。
如果我們使用版本管理工具(Version Control System,VCS。常用如Git)來管理我們的項目代碼時,我們只需要添加`$GOPATH/src`目錄的源代碼即可。`bin`和`pkg`目錄的內容無需版本控制。
### 適合個人開發者
我們知道源代碼都是存放在`GOPATH`的`src`目錄下,那我們可以按照下圖來組織我們的代碼。
### 目前流行的項目結構
Go語言中也是通過包來組織代碼文件,我們可以引用別人的包也可以發布自己的包,但是為了防止不同包的項目名沖突,我們通常使用`頂級域名`來作為包名的前綴,這樣就不擔心項目名沖突的問題了。
因為不是每個個人開發者都擁有自己的頂級域名,所以目前流行的方式是使用個人的github用戶名來區分不同的包。
舉個例子:測試和測試2都有一個名叫`studygo`的項目,那么這兩個包的路徑就會是:
~~~go
import "github.com/ceshi/studygo"
~~~
和
~~~go
import "github.com/ceshi2/studygo"
~~~
以后我們從github上下載別人包的時候,如:
~~~bash
go get github.com/jmoiron/sqlx
~~~
那么,這個包會下載到我們本地`GOPATH`目錄下的`src/github.com/jmoiron/sqlx`。
## Go開發編輯器
Go采用的是UTF-8編碼的文本文件存放源代碼,理論上使用任何一款文本編輯器都可以做Go語言開發,這里推薦使用`VS Code`和`Goland`。`VS Code`是微軟開源的編輯器,而`Goland`是jetbrains出品的付費IDE。
我們這里使用`VS Code`加插件做為go語言的開發工具。
### VS Code介紹
`VS Code`全稱`Visual Studio Code`,是微軟公司開源的一款**免費**現代化輕量級代碼編輯器,支持幾乎所有主流的開發語言的語法高亮、智能代碼補全、自定義熱鍵、括號匹配、代碼片段、代碼對比 Diff、GIT 等特性,支持插件擴展,支持 Win、Mac 以及 Linux平臺。
雖然不如某些IDE功能強大,但是它添加Go擴展插件后已經足夠勝任我們日常的Go開發。
### 下載與安裝
`VS Code`官方下載地址:[https://code.visualstudio.com/Download](https://code.visualstudio.com/Download)
三大主流平臺都支持,請根據自己的電腦平臺選擇對應的安裝包。(一路下一步就好了)
### 配置
#### 安裝中文簡體插件
點擊左側菜單欄最后一項`管理擴展`,在`搜索框`中輸入`chinese`,選中結果列表第一項,點擊`install`安裝。
安裝完畢后右下角會提示`重啟VS Code`,重啟之后你的VS Code就顯示中文啦!

#### 安裝go擴展
現在我們要為我們的VS Code編輯器安裝`Go`擴展插件,讓它支持Go語言開發。

## 第一個Go程序
### Hello World
現在我們來創建第一個Go項目——`hello`。在我們的`GOPATH`下的src目錄中創建hello目錄。
在該目錄中創建一個`main.go`文件:
~~~go
package main // 聲明 main 包,表明當前是一個可執行程序
import "fmt" // 導入內置 fmt 包
func main(){ // main函數,是程序執行的入口
fmt.Println("Hello World!") // 在終端打印 Hello World!
}
~~~
### go build
`go build`表示將源代碼編譯成可執行文件。
在hello目錄下執行:
~~~bash
go build
~~~
或者在其他目錄執行以下命令:
~~~bash
go build hello
~~~
go編譯器會去`GOPATH`的src目錄下查找你要編譯的`hello`項目
編譯得到的可執行文件會保存在執行編譯命令的當前目錄下,如果是windows平臺會在當前目錄下找到`hello.exe`可執行文件。
可在終端直接執行該`hello.exe`文件:
~~~bash
d:\code\go\src\hello>hello.exe
Hello World!
~~~
我們還可以使用`-o`參數來指定編譯后可執行文件的名字。
~~~bash
go build -o heiheihei.exe
~~~