Go?語言開發(fā)環(huán)境搭建過程
Go 語言開發(fā)環(huán)境搭建
一. GO 環(huán)境安裝
1.1 下載
Go官網(wǎng):https://golang.org/dl/
Go鏡像站(推薦):https://golang.google.cn/dl/
1.2 Go 版本的選擇
默認下載最新自己對應(yīng)的平臺即可。
1.3 安裝
1.3.1 Windows安裝
打開下載的安裝程序(.msi文件),然后按照安裝向?qū)е械恼f明進行安裝
1.3.2 Linux下安裝
wget https://golang.google.cn/dl/go1.21.1.linux-amd64.tar.gz
將下載好的文件解壓到/usr/local
目錄下:
tar -zxvf go1.21.1.linux-amd64.tar.gz -C /usr/local # 解壓
如果提示沒有權(quán)限,加上sudo
以root用戶的身份再運行。執(zhí)行完就可以在/usr/local/
下看到go
目錄了。
配置環(huán)境變量,Linux下有兩個文件可以配置環(huán)境變量,
其中/etc/profile
是對所有用戶生效的;$HOME/.profile
是對當(dāng)前用戶生效的,根據(jù)自己的情況自行選擇一個文件打開,添加如下兩行代碼,保存退出。
export GOROOT=/usr/local/goexport PATH=$PATH:$GOROOT/bin
修改/etc/profile
后要重啟生效,修改$HOME/.profile
后使用source命令加載$HOME/.profile
文件即可生效。
1.3.2 Mac下安裝
打開下載的安裝程序(.pkg文件),然后按照安裝向?qū)е械恼f明進行安裝,默認會將go安裝到/usr/local/go
目錄下。
1.4 驗證Go安裝
驗證Go安裝: 打開終端(Terminal)應(yīng)用程序,并運行以下命令來驗證Go是否正確安裝:
go version
二. Go 語言環(huán)境變量
2,1 查看Go 環(huán)境變量
打開終端(Terminal)應(yīng)用程序,并運行以下命令來查看Go 環(huán)境變量:
go env
終端會返回如下命令:
GO111MODULE='on' GOARCH='amd64' GOBIN='' GOCACHE='/Users/thinkook/Library/Caches/go-build' GOENV='/Users/thinkook/Library/Application Support/go/env' GOEXE='' GOEXPERIMENT='' GOFLAGS='' GOHOSTARCH='amd64' GOHOSTOS='darwin' GOINSECURE='' GOMODCACHE='/Users/thinkook/go/pkg/mod' GONOPROXY='' GONOSUMDB='' GOOS='darwin' GOPATH='/Users/thinkook/go' GOPRIVATE='' GOPROXY='https://goproxy.cn,direct' GOROOT='/usr/local/Cellar/go/1.21.1/libexec' GOSUMDB='sum.golang.org' GOTMPDIR='' GOTOOLCHAIN='auto' GOTOOLDIR='/usr/local/Cellar/go/1.21.1/libexec/pkg/tool/darwin_amd64' GOVCS='' GOVERSION='go1.21.1' GCCGO='gccgo' GOAMD64='v1' AR='ar' CC='cc' CXX='c++' CGO_ENABLED='1' GOMOD='/dev/null' GOWORK='' CGO_CFLAGS='-O2 -g' CGO_CPPFLAGS='' CGO_CXXFLAGS='-O2 -g' CGO_FFLAGS='-O2 -g' CGO_LDFLAGS='-O2 -g' PKG_CONFIG='pkg-config' GOGCCFLAGS='-fPIC -arch x86_64 -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -ffile-prefix-map=/var/folders/fs/wzn8gx9n3cq_gqvy502mn17r0000gn/T/go-build3919122639=/tmp/go-build -gno-record-gcc-switches -fno-common'
2.2 常用Go 配置項
環(huán)境變量 | 作用 | 默認值 |
---|---|---|
GOARCH | 用于指示Go編譯器生成代碼所針對的平臺CPU架構(gòu) | 本機的CPU架構(gòu)(例如,AMD64、Arm等) |
GOOS | 用于指示Go編譯器生成代碼所針對的操作系統(tǒng) | 本機的操作系統(tǒng)(例如,Linux、Darwin、Windows等) |
GO111MODULE | 它的值決定了當(dāng)前使用的構(gòu)建模式是傳統(tǒng)的GOPATH模式還是新引入的Go Module模式 | Go 1.16版本后,默認為"on",開啟Go Module構(gòu)建模式 |
GOCACHE | 用于指示存儲構(gòu)建結(jié)果緩存的路徑,這些緩存可能會被后續(xù)的構(gòu)建所使用 | 不同操作系統(tǒng)上有不同的默認值。在Linux上默認值為 "$HOME/.cache/go-build" |
GOMODCACHE | 用于指示存放Go Module的路徑 | 不同操作系統(tǒng)上有不同的默認值。在Linux上默認值為 "$HOME/go/pkg/mod" |
GOPROXY | 用來配置Go Module proxy服務(wù) | 默認值為 "https://proxy.golang.org,direct"。在中國大陸地區(qū)通常設(shè)置為 "https://goproxy.cn,direct" 以加速下載速度 |
GOPRIVATE | 指向自己的私有庫,比如說自己公司的私有庫 | 無(默認值由用戶配置) |
GOPATH | 在傳統(tǒng)的GOPATH構(gòu)建模式下,用于指示Go包搜索路徑的環(huán)境變量,在Go module機制啟用之前是Go核心配置項。Go 1.8版本之前需要手工配置,Go 1.8版本引入了默認的GOPATH($HOME/go)。在Go Module模式正式上位后,可能會被移除 | 無(默認值由用戶配置) |
GOROOT | 指示Go安裝路徑。Go 1.10版本引入了默認GOROOT,開發(fā)者無需顯式設(shè)置,Go程序會自動根據(jù)自己所在路徑推導(dǎo)出GOROOT的路徑 | 無(由Go安裝程序設(shè)置) |
2.3 GOPATH
- src:存放源代碼:在GOPATH中的
src
目錄用于存放你的Go項目的源代碼文件。每個Go項目都應(yīng)該有自己的目錄,通常按照導(dǎo)入路徑的結(jié)構(gòu)來組織。例如,如果你的項目的導(dǎo)入路徑是github.com/yourusername/yourproject
,那么你的項目應(yīng)該位于$GOPATH/src/github.com/yourusername/yourproject
。 - pkg:存放依賴包:
pkg
目錄用于存放已經(jīng)編譯好的Go包,這些包是你的項目依賴的其他包。這些包通常是由Go編譯器自動構(gòu)建并存儲在pkg
目錄中,以便提高構(gòu)建速度。 - bin:存放可執(zhí)行文件:
bin
目錄用于存放通過go install
命令構(gòu)建的可執(zhí)行文件。當(dāng)你使用go install
安裝一個Go程序時,可執(zhí)行文件將被放置在$GOPATH/bin
目錄下,可以直接運行。
2.4 GOROOT
- go的安裝目錄:GOROOT是指示Go語言安裝目錄的環(huán)境變量。它告訴Go編譯器在哪里找到標準庫以及其他與Go相關(guān)的工具和資源。GOROOT的默認值由Go安裝程序設(shè)置,通常位于系統(tǒng)的特定目錄中,例如
/usr/local/go
或C:\Go
。開發(fā)者不需要手動設(shè)置GOROOT,Go會自動識別它。
2.5 GOPROXY
2.5.1 介紹說明:
- 用來配置Go Module proxy服務(wù):GOPROXY是一個環(huán)境變量,用于指定用于下載Go Module的代理服務(wù)。默認值為"https://proxy.golang.org,direct",它允許直接從官方代理下載Go Module。
- 在中國大陸等地區(qū),由于網(wǎng)絡(luò)限制,通常會將GOPROXY設(shè)置為本地的Go Module代理服務(wù),例如"https://goproxy.cn,direct",以加速下載速度和提高可靠性。設(shè)置合適的GOPROXY可以改善Go Module的下載體驗。
2.5.2 設(shè)置代理
對于Go版本1.13及以上:
go env -w GO111MODULE=on go env -w GOPROXY=https://proxy.golang.com.cn/,direct
“direct”是一個特殊指示符,用于指示Go在需要時回源到模塊版本的源地址(例如GitHub等)。如果在GOPROXY值列表中的前一個Go模塊代理返回404或410錯誤,Go會自動嘗試列表中的下一個代理,遇到“direct”時會回源,遇到EOF時會終止并拋出類似“invalid version: unknown revision…”的錯誤。
對于其他版本,可以使用以下方式設(shè)置代理:
export GO111MODULE=on export GOPROXY=https://proxy.golang.com.cn/
2.5.3 常用 GO 代理
以下是一些常用的Go Module代理服務(wù)的地址:
提供者 | 地址 |
---|---|
官方全球代理 | https://proxy.golang.com.cn |
官方 | https://goproxy.io,direct |
七牛云 | https://goproxy.cn |
阿里云 | https://mirrors.aliyun.com/goproxy/ |
GoCenter | https://gocenter.io |
百度 | https://goproxy.bj.bcebos.com/ |
這些代理服務(wù)可以幫助加速Go Module的下載,特別是在網(wǎng)絡(luò)受限的情況下。您可以根據(jù)自己的需求選擇合適的代理服務(wù),并將GOPROXY設(shè)置為相應(yīng)的地址。
三. 常用的IDE 設(shè)置
3.1 VsCode
特點:免費開源,強大的社區(qū)支持,擴展豐富,支持多種編程語言,包括Go。
官網(wǎng)地址:https://code.visualstudio.com/download
Go相關(guān)擴展:在VsCode中使用Go開發(fā),你可以安裝以下一些常用的Go相關(guān)擴展來增強開發(fā)體驗:
- Go - 微軟官方的Go擴展,提供自動補全、格式化、重構(gòu)等語言特性。
- gopls - 另一個語言服務(wù)器,提供智能提示、代碼跳轉(zhuǎn)、診斷等。有些人會覺得它比默認的Go擴展更好。
- Go Test Explorer - 在VS Code內(nèi)運行測試并在側(cè)邊欄顯示結(jié)果。
- Go Modules - 支持Go modules,如導(dǎo)入語句的模塊路徑自動補全。
- gocode-gomod - 使用Go Modules時自動補全模塊。
- dlv-dap - 提供調(diào)試Delve調(diào)試器的配置。
- gotests - 自動為你的代碼生成測試文件。
- guru - 集成guru工具,提供引用、定義等顯示。
- goreturns - 添加快捷鍵運行g(shù)oreturns來格式化和組織導(dǎo)入語句。
3.2 Goland
特點:Goland是JetBrains公司開發(fā)的商業(yè)IDE,專門用于Go語言開發(fā)。它提供了豐富的功能和工具,使Go開發(fā)更加高效和愉快。
官網(wǎng):https://www.jetbrains.com/go/
Go相關(guān)功能:Goland針對Go開發(fā)提供了許多功能,包括:
- 智能代碼補全:Goland具有高度智能的代碼補全功能,可以準確地預(yù)測你要輸入的代碼,提高編碼速度。
- 深度集成:Goland深度集成了Go工具鏈,包括調(diào)試器、測試工具、代碼導(dǎo)航等,使開發(fā)流程更加順暢。
- 代碼重構(gòu):Goland支持各種代碼重構(gòu)操作,可以幫助你改進代碼質(zhì)量和結(jié)構(gòu)。
- 實時錯誤檢查:Goland會在你編寫代碼時實時檢查錯誤和代碼質(zhì)量問題,并提供即時反饋。
- 版本控制:集成了常見的版本控制工具,如Git,方便團隊協(xié)作和版本管理。
配置:
打開后點擊新建項目:
選擇一個項目路徑,和Go編譯器創(chuàng)建項目
繼續(xù)打開settings 設(shè)置Go Module 和 GOPROXY
Environment
正確填寫內(nèi)容:GOPROXY=https://goproxy.cn,direct
這些是常用的Go開發(fā)IDE中的兩個主要選擇。你可以根據(jù)自己的需求和偏好選擇其中一個,它們都提供了強大的工具和功能來支持Go開發(fā)。
到此這篇關(guān)于Go 語言開發(fā)環(huán)境搭建的文章就介紹到這了,更多相關(guān)Go 開發(fā)環(huán)境搭建內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
從并發(fā)到并行解析Go語言中的sync.WaitGroup
Go?語言提供了許多工具和機制來實現(xiàn)并發(fā)編程,其中之一就是?sync.WaitGroup。本文就來深入討論?sync.WaitGroup,探索其工作原理和在實際應(yīng)用中的使用方法吧2023-05-05Go?Excelize?API源碼閱讀SetSheetViewOptions示例解析
這篇文章主要為大家介紹了Go-Excelize?API源碼閱讀SetSheetViewOptions示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08Go中的new()和make()函數(shù)區(qū)別及底層原理詳解
這篇文章主要為大家介紹了Go中的new()和make()函數(shù)區(qū)別及底層原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09