精品軟體與實用教程
什麼是Go語言
Go語言是電腦程式語言, Go(又稱Golang)是Google 的Robert Griesemer,Rob Pike 及Ken Thompson 開發的一種靜態強型別、編譯型語言。 Go 語言語法與C 相近,但功能上有:記憶體安全,GC(垃圾回收),結構形態及CSP-style 並發計算。
下面簡單介紹一下,安裝Go語言及搭建Go語言開發環境。
Go語言下載位址
Go官網下載網址:https://golang.org/dl/
Go官方鏡像站(建議):https://golang.google.cn/dl/
版本的選擇
Windows平台和Mac平台推薦下載執行檔版,Linux平台下載壓縮檔版。 Go語言更新迭代比較快,建議使用較新版本,體驗最新特性。
安裝
Windows安裝
此安裝實例以 64位Win10
系統安裝 Go1.14.1可執行檔版本
為例。
將上一步驟選好的安裝包下載到本機。
雙擊下載好的文件,然後按照下圖的步驟安裝即可。
Linux下安裝
如果不是要在Linux平台敲go程式碼就不需要在Linux平台安裝Go,我們開發機上寫好的go程式碼只需要跨平台編譯(詳見文章末尾的跨平台編譯)好之後就可以拷貝到Linux伺服器上運行了,這也是go程式跨平台易部署的優勢。
我們在版本選擇頁面選擇並下載好go1.14.1.linux-amd64.tar.gz
文件:
wget https://dl.google.com/go/go1.14.1.linux-amd64.tar.gz
將下載好的檔案解壓縮到/usr/local
目錄下:
tar -zxvf go1.14.1.linux-amd64.tar.gz -C /usr/local # 解壓縮
如果提示沒有權限,加上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.14.1 linux/amd64
Mac下安裝
下載可執行檔版,直接點擊下一步安裝即可,預設會將go安裝到/usr/local/go
目錄下。
檢查
上一步安裝程序執行完畢後,可開啟終端機窗口,輸入go version
指令,查看安裝的Go版本。
GOROOT和GOPATH
GOROOT
和GOPATH
都是環境變量,其中GOROOT
是我們安裝go開發包的路徑,而從Go 1.8版本開始,Go開發包在安裝完成後會為GOPATH
設定預設目錄,並且在Go1.14及之後的版本中啟用了Go Module模式之後,不一定要將程式碼寫到GOPATH目錄下,所以也就不需要我們再自己配置GOPATH了,使用預設的即可。
GOPROXY 非常重要
Go1.14版本之後,都建議使用go mod
模式來管理依賴環境了,也不再強迫我們把程式碼必須寫在GOPATH
下面的src目錄了,你可以在你電腦的任意位置寫go程式碼。 (網路上有些教學適用於1.11版本之前。)
預設GoPROXY配置是:GOPROXY=https://proxy.golang.org,direct
,由於國內訪問不到https://proxy.golang.org
,所以我們需要換一個PROXY,這裡推薦使用https://goproxy.io
或https://goproxy.cn
。
可以執行下面的指令修改GOPROXY:
go env -w GOPROXY=https://goproxy.cn,direct
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
。在我們桌面創建一個hello
目錄。
go mod init
使用go module模式新建專案時,我們需要透過go mod init 專案名
命令對專案進行初始化,該命令會在專案根目錄下生成go.mod
文件。例如,我們使用hello
作為我們第一個Go專案的名稱,執行以下命令。
go mod init hello
編寫程式碼
接下來在該目錄中建立一個main.go
文件:
package main // 宣告main 套件,表示目前是一個可執行程式
import "fmt" // 導入內建fmt 包
func main(){ // main函數,是程式執行的入口
fmt.Println("Hello World!") // 在終端機上列印Hello World!
}
非常重要! ! ! 如果此時VS Code右下角彈出提示讓你安裝插件,請務必點 install all 進行安裝。
編譯
go build
命令表示將原始碼編譯成可執行檔。
在hello目錄下執行:
go build
或在其他目錄執行以下命令:
go build hello
go編譯器會去 GOPATH
的src目錄下找你要編譯的hello
專案
編譯得到的可執行檔會保存在執行編譯指令的目前目錄下,如果是windows平台會在目前目錄下找到hello.exe
可執行檔。
可在終端直接執行該hello.exe
文件:
c:\desktop\hello>hello.exe Hello World!
我們也可以使用-o
參數來指定編譯後得到的可執行檔的名字。
go build -o heiheihei.exe
Windows下VSCode切換cmd.exe作為預設終端
如果你打開VS Code的終端介面出現如下圖場景(注意觀察紅框圈中部分),那麼你的VS Code
此時正使用powershell
作為預設終端:十分推薦你按照下面的步驟,選擇
cmd.exe
作為預設的終端工具:此時,VS Code正上方中間位置會彈出如下介面,參考下圖挪動滑鼠使遊標選取後綴為
cmd.exe
的那一個,然後點選滑鼠左鍵。
最後重啟VS Code中已經開啟的終端或者直接重啟VS Code就可以了。如果沒有出現下拉三角,也沒有關係,按下
Ctrl+Shift+P
,VS Code正上方會出現一個框,你會依照下圖輸入shell
,然後點選指定選項即可出現上面的介面了。
go run
go run main.go
也可以執行程序,該命令本質上也是先編譯再執行。
go install
go install
表示安裝的意思,它先編譯原始碼得到可執行文件,然後將可執行檔移到GOPATH
的bin目錄下。因為我們的環境變數中配置了GOPATH
下的bin目錄,所以我們就可以在任意地方直接執行可執行檔了。
跨平台編譯
預設我們go build
的可執行檔都是目前作業系統可執行的文件,Go語言支援跨平台編譯-在目前平台(例如Windows)下編譯其他平台(例如Linux)的可執行檔。
Windows編譯Linux執行檔
如果我想在Windows下編譯一個Linux下執行文件,那需要怎麼做呢?只需要在編譯時指定目標作業系統的平台和處理器架構即可。
注意:無論你在Windows電腦上使用VsCode編輯器還是Goland編輯器,都要注意你使用的終端機類型,因為不同的終端機下指令不一樣! ! !目前的Windows通常預設使用的是
PowerShell
終端。
如果你的Windows
使用的是cmd
,那麼如下指定環境變數。
SET CGO_ENABLED=0 // 停用CGO SET GOOS=linux // 目標平台是linux SET GOARCH=amd64 // 目標處理器架構是amd64
如果你的Windows
使用的是PowerShell
終端,那麼設定環境變數的語法為
$ENV:CGO_ENABLED=0
$ENV:GOOS="linux"
$ENV:GOARCH="amd64"
在你的Windows
終端機下執行完上述指令後,再執行下面的指令,得到的就是能夠在Linux平台運作的可執行檔了。
go build
Windows編譯Mac執行檔
Windows下編譯Mac平台64位元可執行程式:
cmd終端機下執行:
SET CGO_ENABLED=0 SET GOOS=darwin SET GOARCH=amd64 go build
PowerShell終端機下執行:
$ENV:CGO_ENABLED=0
$ENV:GOOS="darwin"
$ENV:GOARCH="amd64"
go build
Mac編譯Linux執行檔
Mac電腦編譯得到Linux平台64位元可執行程式:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
Mac編譯Windows執行檔
Mac電腦編譯得到Windows平台64位元執行程式:
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
Linux編譯Mac可執行檔
Linux平台下編譯Mac平台64位元可執行程式:
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
Linux編譯Windows可執行檔
Linux平台下編譯Windows平台64位元可執行程式:
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
現在,開啟你的Go語言學習之旅吧。人生苦短,let's Go.