golang 入門之環境搭建

7tiny 發表於 2021-04-08
Go

【安裝執行時】

直接上官網下載執行時安裝即可:golang 官網

golang 入門之環境搭建

根據自己作業系統選擇 golang 執行時版本,例如windows

golang 入門之環境搭建

當然我們也可以直接選擇下面的穩定版本進行下載

golang 入門之環境搭建

下載安裝後,安裝程式會自動配置環境變數,我們在cmd中輸入 go version 檢視當前golang執行時版本

go version

golang 入門之環境搭建

【選擇合適的編輯器】

Goland

Goland,商業公司jetbrains 近兩年推出的 Go 整合開發環境,它真的是無比強大。缺點也是有的,就是比較吃機器配置(佔記憶體高,低配機器卡),需要收費。

VS Code

VS Code,微軟公司的開源文字編輯器,輕量級,免費。這裡我選擇vs code作為初步學習的IDE

VS Code外掛

在vs code的擴充套件管理介面搜尋"go",下圖第一個名為"go"的外掛直接安裝即可

golang 入門之環境搭建

【配置GoPath/GoModule】

什麼是GoPath(Go語言工作目錄)

GOPATH 是 Go語言中使用的一個環境變數,它使用絕對路徑提供專案的工作目錄。

工作目錄是一個工程開發的相對參考目錄,好比當你要在公司編寫一套伺服器程式碼,你的工位所包含的桌面、計算機及椅子就是你的工作區。工作區的概念與工作目錄的概念也是類似的。如果不使用工作目錄的概念,在多人開發時,每個人有一套自己的目錄結構,讀取配置檔案的位置不統一,輸出的二進位制執行檔案也不統一,這樣會導致開發的標準不統一,影響開發效率。

我們可以通過 go env命令檢視我們配置的GoPath地址

go env

golang 入門之環境搭建

其實 GOPATH是go語言早期的設計,但是在開發過程中,多個專案用一個GoPath會十分不方便,會導致經常忘記切GoPath導致編譯版本錯誤等問題。這時候,我們就要用GoModule了。

值得一提的是,採用GoPath其實是golang團隊初期設計上的小缺陷,造成了很大的不便。因此,golang團隊在Golang1.11版本新引入了官方包管理工具用於解決之前沒有地方記錄依賴包具體版本的問題。

什麼是GoModule

GoModule也叫 go mod,因為命令使用時,需要輸入 go mod 來操作Modules

使用go mod 管理專案,就不需要非得把專案放到GOPATH指定目錄下,你可以在你磁碟的任何位置新建一個專案

然後使用命令來建立go.mod檔案(其實就是一個專案的包管理檔案)

開啟vs終端,首先cd到專案根目錄,然後輸入命令

go mod init

golang 入門之環境搭建

輸出日誌告訴你要我們要定義一個Module名稱,並給出了舉例,那麼我們加一個名稱

go mod init example.com/m

golang 入門之環境搭建

這時候,我們可以看到我們的專案根目錄已經自動生成了一個go.mod檔案

golang 入門之環境搭建

【配置代理地址】

眾所周知的原因,導致我們無法輕鬆訪問golang的官方伺服器,在安裝依賴項時,會因為網路問題導致安裝失敗,這時候,就要用代理了。

使用goproxy.io

官方地址:https://goproxy.io/zh/

我用的是windows系統,按官方教程直接配置

  1. 右鍵 我的電腦 -> 屬性 -> 高階系統設定 -> 環境變數
  2. 在 “[你的使用者名稱]的使用者變數” 中點選 ”新建“ 按鈕
  3. 在 “變數名” 輸入框並新增 “GOPROXY”
  4. 在對應的 “變數值” 輸入框中新增 “https://goproxy.io,direct”
  5. 最後點選 “確定” 按鈕儲存設定

其他系統配置參考官方教程即可,非常簡單。

【推薦專案結構】

按照golang的官方推薦,一般專案目錄下會有下面結構

|--bin
|--pkg
|--src

golang 入門之環境搭建

其中,bin存放編譯後的可執行檔案;pkg存放編譯後的包檔案;src存放專案原始檔。

一般,bin和pkg目錄可以不建立,go命令會自動建立(如 go install),只需要建立src目錄即可。

對於pkg目錄,曾經有人問:我把Go中的包放入pkg下面,怎麼不行啊?他直接把Go包的原始檔放入了pkg中。

這顯然是不對的。pkg中的檔案是Go編譯生成的,而不是手動放進去的。(一般檔案字尾.a)

對於src目錄,存放原始檔,Go中原始檔以包(package)的形式組織。通常,新建一個包就在src目錄中新建一個資料夾。

【開始HelloWorld吧】

我們在src下面(可以自行根據喜好建立組織名,專案名,作者等層次)建立helloworld.go檔案

golang 入門之環境搭建

然後使用vscode輸入helloworld程式碼

package main

import "fmt"

func main() {
  fmt.Println("hello world")
}

golang 入門之環境搭建

然後我們按F5執行(Debug)...

這時候vscode可能會提示我們安裝除錯包等依賴項,我們點選一鍵安裝即可

由於外網問題,如果沒有配置代理地址,那麼很有可能安裝報錯,這時候請參考前面步驟的【配置代理地址】解決

成功輸出了Helloworld

golang 入門之環境搭建