一步一步,從零搭建Go語言開發環境,
安裝Go語言及搭建Go語言開發環境

下載
Go官網下載地址:https://golang.org/dl/
Go官方鏡像站(推薦):https://golang.google.cn/dl/
版本的選擇
Windows平臺和Mac平臺推薦下載可執行檔案版,Linux平臺下載壓縮檔案版,
下圖中的版本號可能并不是最新的,但總體來說安裝教程是類似的,

安裝
Windows安裝
此安裝實體以 64位Win10系統安裝 Go1.11.5可執行檔案版本為例,
將上一步選好的安裝包下載到本地,

雙擊下載好的檔案,然后按照下圖的步驟安裝即可,



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

檢查
上一步安裝程序執行完畢后,可以打開終端視窗,輸入go version命令,查看安裝的Go版本,
配置GOPATH
GOPATH是一個環境變數,用來表明你寫的go專案的存放路徑(作業目錄),
GOPATH路徑最好只設定一個,所有的專案代碼都放到GOPATH的src目錄下,
補充說明:Go1.11版本之后,開啟go mod模式之后就不再強制需要配置GOPATH了,
Linux和Mac平臺就參照上面配置環境變數的方式將自己的作業目錄添加到環境變數中即可, Windows平臺按下面的步驟將D:\code\go添加到環境變數:







在 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目錄都添加到環境變數中,
配置環境變數之后需要重啟你電腦上已經打開的終端,(例如cmd、VS Code里面的終端和其他編輯器的終端),
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用戶名來區分不同的包,

舉個例子:張三和李四都有一個名叫studygo的專案,那么這兩個包的路徑就會是:
import "github.com/zhangsan/studygo"
和
import "github.com/lisi/studygo"
以后我們從github上下載別人包的時候,如:
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
三大主流平臺都支持,請根據自己的電腦平臺選擇對應的安裝包,
雙擊下載好的安裝檔案,雙擊安裝即可,
配置
安裝中文簡體插件
點擊左側選單欄最后一項管理擴展,在搜索框中輸入chinese ,選中結果串列第一項,點擊install安裝,
安裝完畢后右下角會提示重啟VS Code,重啟之后你的VS Code就顯示中文啦!
VSCode主界面介紹: 
安裝go擴展
現在我們要為我們的VS Code編輯器安裝Go擴展插件,讓它支持Go語言開發, 
第一個Go程式
Hello World
現在我們來創建第一個Go專案——hello,在我們的GOPATH下的src目錄中創建hello目錄,
在該目錄中創建一個main.go檔案:
package main // 宣告 main 包,表明當前是一個可執行程式
import "fmt" // 匯入內置 fmt 包
func main(){ // main函式,是程式執行的入口
fmt.Println("Hello World!") // 在終端列印 Hello World!
}
go build
go build表示將源代碼編譯成可執行檔案,
在hello目錄下執行:
go build
或者在其他目錄執行以下命令:
go build hello
go編譯器會去 GOPATH的src目錄下查找你要編譯的hello專案
編譯得到的可執行檔案會保存在執行編譯命令的當前目錄下,如果是windows平臺會在當前目錄下找到hello.exe可執行檔案,
可在終端直接執行該hello.exe檔案:
d:\code\go\src\hello>hello.exe
Hello World!
我們還可以使用-o引數來指定編譯后得到的可執行檔案的名字,
go build -o heiheihei.exe
注意事項: 如果你打開VS Code的終端界面出現如下場景
十分推薦你按照下面的步驟,選擇cmd.exe作為默認的終端工具:

此時,VS Code正上方中間位置會彈出如下界面,參照下圖挪動滑鼠使游標選中后綴為cmd.exe的那一個,然后點擊滑鼠左鍵,
最后重啟VS Code中已經開開的終端或者直接重啟VS Code就可以了,

如果沒有出現下拉三角,也沒有關系,按下Ctrl+Shift+P,VS Code正上方會出現一個框,你按照下圖輸入shell,然后點擊指定選項即可出現上面的界面了, 
補充說明:由于VS Code對go mod模式的支持暫時還不夠完善,建議大家使用Goland編輯器,
go install
go install表示安裝的意思,它先編譯源代碼得到可執行檔案,然后將可執行檔案移動到GOPATH的bin目錄下,因為我們的環境變數中配置了GOPATH下的bin目錄,所以我們就可以在任意地方直接執行可執行檔案了,
跨平臺編譯
默認我們go build的可執行檔案都是當前作業系統可執行的檔案,如果我想在windows下編譯一個linux下可執行檔案,那需要怎么做呢?
只需要指定目標作業系統的平臺和處理器架構即可:
SET CGO_ENABLED=0 // 禁用CGO SET GOOS=linux // 目標平臺是linux SET GOARCH=amd64 // 目標處理器架構是amd64
使用了cgo的代碼是不支持跨平臺編譯的
然后再執行go build命令,得到的就是能夠在Linux平臺運行的可執行檔案了,
Mac 下編譯 Linux 和 Windows平臺 64位 可執行程式:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
Linux 下編譯 Mac 和 Windows 平臺64位可執行程式:
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
Windows下編譯Mac平臺64位可執行程式:
SET CGO_ENABLED=0 SET GOOS=darwin SET GOARCH=amd64 go build
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/40862.html
標籤:Go
下一篇:gRPC in ASP.NET Core 3.x -- Protocol Buffer(2)Go語言的例子(下)
