兔起鶻落全端涵蓋,Go lang1.18入門精煉教學,由白丁入鴻儒,全平臺(Sublime 4)Go lang開發環境搭建EP00

2022-08-03 15:01:12

Go lang,為並行而生的靜態語言,源於C語言又不拘泥於效能,高效卻不流於古板,Python靈活,略輸效能,Java嚴謹,稍遜風騷。君不見各大廠牌均紛紛使用Go lang對自己的高並行業務進行重構,原因無他,經濟下行的大背景之下,效能突出、效率拉滿的Go lang無疑是高並行場景下節約伺服器資源的一劑靈藥。

與時俱進,順應潮流,本次我們乘著市場的東風,在各大主流平臺(Win/Mac/Linux/Docker)安裝並搭建Go lang1.18的開發環境,短時間內做到能夠在任何一款開發機或者伺服器上輸出Go lang的全部功力,如臂使指,揮灑自如。

Windows11平臺

首先來到市場佔有率最高的Win11系統,前往Go lang官網 https://go.dev/dl/ 下載win平臺下的64位元安裝包:

Microsoft Windows  
Windows 7 or later, Intel 64-bit processor  
go1.18.5.windows-amd64.msi (130MB)

選擇安裝目錄後,直接點選安裝即可。

安裝完畢之後,首先輸入「win+R」,開啟終端。然後在裡面輸入命令:control system。在開啟的系統資訊介面中,選擇左側選單的「高階系統設定」。隨後在開啟的「系統屬性」視窗選擇下方的「環境變數」選項。最後在開啟的環境變數中,檢查系統是否將Go lang的安裝目錄"c:/go/bin"設定到了環境變數裡,如果已經設定了,在終端中鍵入命令:

go version

系統返回:

C:\Users\liuyue>go version  
go version go1.18.5 windows/amd64

說明Go lang1.18版本已經在系統中安裝成功。

Mac平臺

接著來到Mac系統,Mac系統一般會包含兩套架構,分別是:搭載Intel晶片的x86架構系統,和搭載M系列晶片的ARM架構系統。

首先開啟終端,鍵入如下命令:

uname -m

如果返回:

arm64

說明是ARM架構系統,反之:

x86

則是Intel晶片的x86架構系統。

前往Go lang官網 https://go.dev/dl/ ARM架構系統下載:

Apple macOS (ARM64)  
macOS 11 or later, Apple 64-bit processor  
go1.18.5.darwin-arm64.pkg (132MB)

X86架構系統下載:

Apple macOS (x86-64)  
macOS 10.13 or later, Intel 64-bit processor  
go1.18.5.darwin-amd64.pkg (138MB)

下載之後,雙擊進行安裝即可。

區別於Windows平臺,我們還可以使用更加靈活的方式安裝設定Go lang1.18,那就是鼎鼎有名的Homebrew。

Homebrew是一款自由及開放原始碼的軟體包管理系統,用以簡化macOS系統上的軟體安裝過程,最初由馬克斯·霍威爾寫成。因其可延伸性得到了一致好評,而在Ruby on Rails社群廣為人知。 Homebrew使用GitHub,通過使用者的貢獻擴大對軟體包的支援,同樣也支援Go lang生態環境。

首先安裝Homebrew:

/bin/zsh -c "$(curl -fsSLhttps://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)」

隨後執行命令清除快取和更新版本:

brew cleanup && brew update

接著執行命令進行go lang1.18的安裝操作:

brew install go

接著會進行下載安裝操作:

brew install go                           
==> Downloading https://ghcr.io/v2/homebrew/core/go/manifests/1.18.5  
Already downloaded: /Users/liuyue/Library/Caches/Homebrew/downloads/819fc08bdc0ecafc9713bdfd76a9e6901172c0b2c0cdde0dd482a0b37ba008fd--go-1.18.5.bottle_manifest.json  
==> Downloading https://ghcr.io/v2/homebrew/core/go/blobs/sha256:4f80cc29d711ddc5038f6b4684fe31674df01284aaa611480  
==> Downloading from https://pkg-containers.githubusercontent.com/ghcr1/blobs/sha256:4f80cc29d711ddc5038f6b4684fe3  
######################################################################## 100.0%  
==> Pouring go--1.18.5.arm64_monterey.bottle.tar.gz  
????  /opt/homebrew/Cellar/go/1.18.5: 11,990 files, 596.2MB  
==> Running `brew cleanup go`...  
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.  
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

由於諸位可以理解的原因,這裡建議大家用學術的方式連線網際網路從而獲取更快的下載速度。

最後執行命令清理安裝包快取:

brew cleanup go

接著鍵入命令就可以檢視go lang具體的安裝目錄:

brew list go     
/opt/homebrew/Cellar/go/1.18.5/bin/go  
/opt/homebrew/Cellar/go/1.18.5/bin/gofmt  
/opt/homebrew/Cellar/go/1.18.5/libexec/api/ (22 files)  
/opt/homebrew/Cellar/go/1.18.5/libexec/bin/ (2 files)  
/opt/homebrew/Cellar/go/1.18.5/libexec/doc/ (5 files)  
/opt/homebrew/Cellar/go/1.18.5/libexec/lib/ (3 files)  
/opt/homebrew/Cellar/go/1.18.5/libexec/misc/ (393 files)  
/opt/homebrew/Cellar/go/1.18.5/libexec/pkg/ (695 files)  
/opt/homebrew/Cellar/go/1.18.5/libexec/src/ (7786 files)  
/opt/homebrew/Cellar/go/1.18.5/libexec/test/ (3071 files)  
/opt/homebrew/Cellar/go/1.18.5/libexec/ (6 files)

在終端鍵入命令:

go version

系統返回:

➜  ~ go version  
go version go1.18.5 darwin/arm64

這裡建議使用Homebrew來安裝Go lang,brew會根據當前系統架構來自動選擇不同系統架構的編譯版本來進行安裝。

Ubuntu/Centos

首先刪除 /usr/local/go 目錄,根據官網說明,如果之前有安裝過 go,那麼需要將該位置的 go 目錄刪除掉 :

sudo rm -rf /usr/local/go

接著下載安裝並安裝:

# 下載安裝包  
$ wget https://golang.google.cn/dl/go1.18.linux-amd64.tar.gz  
# 解壓 golang 到 /usr/local 下  
$ sudo tar xzvf go1.18.linux-amd64.tar.gz -C /usr/local

最後設定環境變數:

# 修改 $HOME/.profile 或 /etc/profile 檔案  
# 這裡可能會出現許可權不足(ubuntu需要加sudo, centos需要切換成root許可權)  
$ sudo vim /etc/profile  
# 在該檔案最後一行插入(進入後,按 i鍵進入編輯模式)  
$ export PATH=$PATH:/usr/local/go/bin  
# 按 esc 退出編輯模式, 按 :wq 儲存檔案  
$ go version

系統返回:

go version go1.18 linux/amd64

Docker容器搭建

如果我們不希望go lang在系統中留下些許的痕跡,Docker也可以幫我們快速搭建開發環境,關於Docker的安裝,請移玉步至:一寸宕機一寸血,十萬容器十萬兵|Win10/Mac系統下基於Kubernetes(k8s)搭建Gunicorn+Flask高可用Web叢集

首先建立環境資料夾:

mkdir mygo  
cd mygo

隨後建立測試指令碼hello.go:

package main  
  
func main() {  
    println("hello go1.18")  
}

接著建立Docker映象打包檔案Dockerfile:

FROM golang:alpine  
  
WORKDIR /build  
  
COPY hello.go .  
  
RUN go build -o hello hello.go  
  
CMD ["./hello"]

這裡的建立邏輯是基礎映象選擇alpine,容器內建立build編譯資料夾,將hello.go拷貝到build目錄下,隨後執行容器內的go編譯器對指令碼進行打包,最後執行打包後的可執行檔案。

執行命令打包映象:

docker build -t go .

隨後系統自動下載基礎映象並且編譯:

Sending build context to Docker daemon  3.072kB  
Step 1/5 : FROM golang:alpine  
 ---> 15115d36d05e  
Step 2/5 : WORKDIR /build  
 ---> Using cache  
 ---> 09ea4177a5f7  
Step 3/5 : COPY hello.go .  
 ---> 20ff0208e342  
Step 4/5 : RUN go build -o hello hello.go  
 ---> Running in c03d13c80c36  
Removing intermediate container c03d13c80c36  
 ---> c41673d8b447  
Step 5/5 : CMD ["./hello"]  
 ---> Running in 8f74af4426cf  
Removing intermediate container 8f74af4426cf  
 ---> caf626888641  
Successfully built caf626888641  
Successfully tagged go:latest

檢視映象明細:

docker images

返回明細:

[root@instance-7dojaq0e mygo]# docker images  
REPOSITORY   TAG       IMAGE ID       CREATED          SIZE  
go           latest    caf626888641   43 minutes ago   329MB  
golang       alpine    15115d36d05e   15 hours ago     328MB

執行docker命令啟動容器:

docker run -it --rm go

系統返回:

hello go1.18

至此,Docker搭建go lang1.18環境就完成了。

Sublime 4 for Go lang

編寫Go lang程式碼也可以選擇輕量編輯器Sublime,是的,一律千篇的Goland多多少少有點審美疲勞,關於Sublime 4的安裝,請移步:輕盈瀟灑卓然不群,敏捷編輯器Sublime text 4中文設定Python3開發執行程式碼環境(Win11+M1 mac)這裡不再贅述。

開啟Sublime 4,使用組合鍵:

control + shift + p

如果是mac平臺,鍵入:

cmd + shift + p

在彈出的命令列中選擇:Install Package

然後輸入:Golang Build 按回車安裝

安裝成功後,設定go lang安裝路徑:

偏好設定 -> package settings -> Golang Config -> Settings - Uesrs

{  
    "PATH": "C:/Go/bin",  
    "GOPATH": "C:/Go"  
}

緊接著設定go mod,go mod是Go語言的包管理工具,官方推薦使用,有了它就不再受GOPATH的限制,可以在任何目錄初始化專案,開啟命令列,鍵入命令:

go env -w GO111MODULE=auto  
go env -w GOPROXY=https://goproxy.cn,direct

然後在Sublime 4中新建一個hello.go檔案:

package main  
  
import "fmt"  
  
func main() {  
  
	fmt.Println("hello go1.18")  
}

接著使用快捷鍵 control + b 或者 control + shift + b 選擇go run編譯器執行程式碼,Mac系統用cmd替換control,如圖所示:

隨後繼續安裝程式碼補全外掛,鍵入:control + shift + p 並輸入:Install Package

輸入:Golang Tools Integration 回車進行安裝

重啟Sublime 4。

隨後即可在程式碼中進行補全操作:

至此,開發編輯器就設定好了。

結語

不同於Python或者是Ruby,Go lang不是系統預裝的基礎語言,所以設定起來相對獨立,不需要考慮與系統版本衝突問題。與此同時,Golang還支援交叉編譯功能,即在Windows平臺可以將程式碼編譯成Linux平臺可執行的檔案,對於Windows平臺使用者來說,這無疑是一個重大利好。