Go語言開發環境搭建
Go語言開發環境搭建
一、Windows下安裝
安裝Go開發包
-
官網下載Go語言開發包,安裝方法就是next,除了安裝位置選擇
-
安裝目錄選定一個好記的。儘量不要放在C盤中,除非你盤空間很大,完全夠用。此路徑需要自己記住,需要時可以很容易的找到。
-
安裝完成後輸入
go version
檢視go版本號 -
也可以使用
go
來測試,只要顯示一大堆東西就是安裝成功,這是野路子方法,不推薦使用。
GOPATH
- 在自己電腦上新建一個目錄,例如E:\Go(存放我編寫的Go語言程式碼)
- 在環境變數裡,新建一項:
GOPATH:D:\Go
- 在
D:\Go
下新建三個資料夾,分別是:bin
、pkg
src
- 把
D:\GO\bin
這個目錄新增到PATH
這個環境變數的後面- Win7是英文的;分隔
- Win10是單獨一行
- 我們的電腦上在安裝完go包之後是預設生成了預設的環境變數的,也就是說GOPATH是有預設值的,通常是
%USERPROFILE%/go
,把這一項刪掉,自己按照環境變數的新增方式重新新增一個自己配製的環境變數就可以了
二、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
設定一個預設目錄,參見下表。
GOPATH在不同作業系統平臺上的預設值
平臺 | GOPATH預設值 | 舉例 |
---|---|---|
Windows | %USERPROFILE%/go | C:\Users\使用者名稱\go |
Unix | $HOME/go | /home/使用者名稱/go |
我們只需要記住預設的GOPATH路徑在哪裡就可以了,並且預設情況下 GOROOT
下的bin目錄及GOPATH
下的bin目錄都已經新增到環境變數中了,我們也不需要額外配置了。
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
注:執行完此命令需要關閉編譯器(一般指VSCode)後才會生效
五、Go開發的編譯器
Go採用的是UTF-8編碼的文字檔案存放原始碼,理論上使用任何一款文字編輯器都可以做Go語言開發,這裡推薦使用VS Code
和Goland
。 VS Code
是微軟開源的編輯器,而Goland
是jetbrains出品的付費IDE。
但是在大公司中,尤其是連線外網公司儘可能的不要使用破解版的IDE,容易出現不必要的版權問題
推薦使用VSCode,或者Vim編譯器,但是由於vim上手慢所以使用VSCode是首選,當然還有其他很多種編譯器可以選擇,這裡不做過多的解釋,詳情請找度娘
VSCode介紹
VSCode
全稱Visual Studio Code
,是微軟公司開源的一款免費現代化輕量級程式碼編輯器,支援幾乎所有主流的開發語言的語法高亮、智慧程式碼補全、自定義熱鍵、括號匹配、程式碼片段、程式碼對比 Diff、GIT 等特性,支援外掛擴充套件,支援 Win、Mac 以及 Linux平臺。
雖然不如某些IDE功能強大,但是它新增Go擴充套件外掛後已經足夠勝任我們日常的Go開發。
下載安裝VSCode
VSCode
官方下載地址:https://code.visualstudio.com/Download
三大主流平臺都支援,請根據自己的電腦平臺選擇對應的安裝包。
配置
-
安裝中文簡體外掛
點選左側選單欄最後一項
管理擴充套件
,在搜尋框
中輸入chinese
,選中結果列表第一項,點選install
安裝。安裝完畢後右下角會提示
重啟VS Code
,重啟之後你的VS Code就顯示中文啦! -
基本快捷鍵
- Ctrl + Shift + E 檔案資源管理器
- Ctrl + Shift + F 跨檔案搜尋
- Ctrl + Shift + G 原始碼管理
- Ctrl + Shift + D 啟動和的除錯
- Ctrl + Shift + X 管理擴充套件
- Ctrl + Shift + M 檢視錯誤可警告
- Ctrl + Shift + P 執行命令的輸入框
- Ctrl + ` 切換整合終端
-
變更編輯器主題:依次點選
設定->顏色主題
-
安裝Go擴充套件工具
現在我們要為我們的VS Code編輯器安裝
Go
擴充套件外掛,讓它支援Go語言開發,直接在管理擴充套件中搜索下載第一個。
Go語言開發工具包
Go語言開發的時候為我們提供了諸如程式碼提示、程式碼補全等功能,但是執行下載時由於是國外的網站連結,下載會失敗,所以需要我們配置國內的映象源,這個配置可以在編譯器中的控制檯執行,也可以直接在cmd中執行
設定GOPROXY
,開啟終端執行以下命令:
go env -w GOPROXY=https://goproxy.cn,direct
Windows平臺按下Ctrl+Shift+P
,Mac平臺按Command+Shift+P
,這個時候VS Code介面會彈出
我們在這個輸入框中輸入>go:install
,下面會自動搜尋相關命令,我們選擇Go:Install/Update Tools
這個命令,按下圖選中並會回車執行該命令(或者使用滑鼠點選該命令),然後等待所有工具安裝完成
配置程式碼片段快捷鍵
-
按
Ctrl/Command+Shift+P
,按下圖輸入>snippets
,選擇命令並執行 -
然後在彈出的視窗點選選擇
go
選項: -
然後可以進行修改
"這裡放個名字":{ "prefix": "這個是快捷鍵", "body": "這裡是按快捷鍵插入的程式碼片段", "description": "這裡放提示資訊的描述" } # 例子: { // Place your snippets for go here. Each snippet is defined under a snippet name and has a prefix, body and // description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are: // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the // same ids are connected. // Example: // "Print to console": { // "prefix": "log", // "body": [ // "console.log('$1');", // "$2" // ], // "description": "Log output to console" // } "println":{ "prefix": "pln", "body":"fmt.Println(\"$0\")", "description": "println" }, "printf":{ "prefix": "plf", "body": "fmt.Printf(\"$0\")", "description": "printf" }, "print":{ "prefix": "plt", "body": "fmt.Print(\"$0\")", "description": "print" } }
其中
$0
表示最終游標停留的位置。 舉個例子,我這裡建立了兩個快捷方式,一個是輸入pln
就會在編輯器中插入fmt.Println()
程式碼;輸入plf
,就會插入fmt.Printf("")
程式碼。 然後可以開啟檔案測試一下,敲擊plt或pln選中後按回車
Go語言專案結構
- api :存放對外公開的API規則
- builder:存放構建指令碼等
- cli:命令列的主要邏輯
- cmd:存放可執行程式,main包放在這個目錄中
- contrib:存放一些有用的指令碼或檔案,但不是專案的核心部分
- docs:存放文件
- internal:只在專案使用的包(私有)
- pkg:本專案以及企業他專案可以使用的包(公有)
- plugin:提供外掛功能