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 版本的選擇
默認(rèn)下載最新自己對(duì)應(yīng)的平臺(tái)即可。
1.3 安裝
1.3.1 Windows安裝
打開下載的安裝程序(.msi文件),然后按照安裝向?qū)е械恼f明進(jìn)行安裝
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用戶的身份再運(yùn)行。執(zhí)行完就可以在/usr/local/
下看到go
目錄了。
配置環(huán)境變量,Linux下有兩個(gè)文件可以配置環(huán)境變量,
其中/etc/profile
是對(duì)所有用戶生效的;$HOME/.profile
是對(duì)當(dāng)前用戶生效的,根據(jù)自己的情況自行選擇一個(gè)文件打開,添加如下兩行代碼,保存退出。
export GOROOT=/usr/local/goexport PATH=$PATH:$GOROOT/bin
修改/etc/profile
后要重啟生效,修改$HOME/.profile
后使用source命令加載$HOME/.profile
文件即可生效。
1.3.2 Mac下安裝
打開下載的安裝程序(.pkg文件),然后按照安裝向?qū)е械恼f明進(jìn)行安裝,默認(rèn)會(huì)將go安裝到/usr/local/go
目錄下。
1.4 驗(yàn)證Go安裝
驗(yàn)證Go安裝: 打開終端(Terminal)應(yīng)用程序,并運(yùn)行以下命令來驗(yàn)證Go是否正確安裝:
go version
二. Go 語言環(huán)境變量
2,1 查看Go 環(huán)境變量
打開終端(Terminal)應(yīng)用程序,并運(yùn)行以下命令來查看Go 環(huán)境變量:
go env
終端會(huì)返回如下命令:
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 配置項(xiàng)
環(huán)境變量 | 作用 | 默認(rèn)值 |
---|---|---|
GOARCH | 用于指示Go編譯器生成代碼所針對(duì)的平臺(tái)CPU架構(gòu) | 本機(jī)的CPU架構(gòu)(例如,AMD64、Arm等) |
GOOS | 用于指示Go編譯器生成代碼所針對(duì)的操作系統(tǒng) | 本機(jī)的操作系統(tǒng)(例如,Linux、Darwin、Windows等) |
GO111MODULE | 它的值決定了當(dāng)前使用的構(gòu)建模式是傳統(tǒng)的GOPATH模式還是新引入的Go Module模式 | Go 1.16版本后,默認(rèn)為"on",開啟Go Module構(gòu)建模式 |
GOCACHE | 用于指示存儲(chǔ)構(gòu)建結(jié)果緩存的路徑,這些緩存可能會(huì)被后續(xù)的構(gòu)建所使用 | 不同操作系統(tǒng)上有不同的默認(rèn)值。在Linux上默認(rèn)值為 "$HOME/.cache/go-build" |
GOMODCACHE | 用于指示存放Go Module的路徑 | 不同操作系統(tǒng)上有不同的默認(rèn)值。在Linux上默認(rèn)值為 "$HOME/go/pkg/mod" |
GOPROXY | 用來配置Go Module proxy服務(wù) | 默認(rèn)值為 "https://proxy.golang.org,direct"。在中國(guó)大陸地區(qū)通常設(shè)置為 "https://goproxy.cn,direct" 以加速下載速度 |
GOPRIVATE | 指向自己的私有庫,比如說自己公司的私有庫 | 無(默認(rèn)值由用戶配置) |
GOPATH | 在傳統(tǒng)的GOPATH構(gòu)建模式下,用于指示Go包搜索路徑的環(huán)境變量,在Go module機(jī)制啟用之前是Go核心配置項(xiàng)。Go 1.8版本之前需要手工配置,Go 1.8版本引入了默認(rèn)的GOPATH($HOME/go)。在Go Module模式正式上位后,可能會(huì)被移除 | 無(默認(rèn)值由用戶配置) |
GOROOT | 指示Go安裝路徑。Go 1.10版本引入了默認(rèn)GOROOT,開發(fā)者無需顯式設(shè)置,Go程序會(huì)自動(dòng)根據(jù)自己所在路徑推導(dǎo)出GOROOT的路徑 | 無(由Go安裝程序設(shè)置) |
2.3 GOPATH
- src:存放源代碼:在GOPATH中的
src
目錄用于存放你的Go項(xiàng)目的源代碼文件。每個(gè)Go項(xiàng)目都應(yīng)該有自己的目錄,通常按照導(dǎo)入路徑的結(jié)構(gòu)來組織。例如,如果你的項(xiàng)目的導(dǎo)入路徑是github.com/yourusername/yourproject
,那么你的項(xiàng)目應(yīng)該位于$GOPATH/src/github.com/yourusername/yourproject
。 - pkg:存放依賴包:
pkg
目錄用于存放已經(jīng)編譯好的Go包,這些包是你的項(xiàng)目依賴的其他包。這些包通常是由Go編譯器自動(dòng)構(gòu)建并存儲(chǔ)在pkg
目錄中,以便提高構(gòu)建速度。 - bin:存放可執(zhí)行文件:
bin
目錄用于存放通過go install
命令構(gòu)建的可執(zhí)行文件。當(dāng)你使用go install
安裝一個(gè)Go程序時(shí),可執(zhí)行文件將被放置在$GOPATH/bin
目錄下,可以直接運(yùn)行。
2.4 GOROOT
- go的安裝目錄:GOROOT是指示Go語言安裝目錄的環(huán)境變量。它告訴Go編譯器在哪里找到標(biāo)準(zhǔn)庫以及其他與Go相關(guān)的工具和資源。GOROOT的默認(rèn)值由Go安裝程序設(shè)置,通常位于系統(tǒng)的特定目錄中,例如
/usr/local/go
或C:\Go
。開發(fā)者不需要手動(dòng)設(shè)置GOROOT,Go會(huì)自動(dòng)識(shí)別它。
2.5 GOPROXY
2.5.1 介紹說明:
- 用來配置Go Module proxy服務(wù):GOPROXY是一個(gè)環(huán)境變量,用于指定用于下載Go Module的代理服務(wù)。默認(rèn)值為"https://proxy.golang.org,direct",它允許直接從官方代理下載Go Module。
- 在中國(guó)大陸等地區(qū),由于網(wǎng)絡(luò)限制,通常會(huì)將GOPROXY設(shè)置為本地的Go Module代理服務(wù),例如"https://goproxy.cn,direct",以加速下載速度和提高可靠性。設(shè)置合適的GOPROXY可以改善Go Module的下載體驗(yàn)。
2.5.2 設(shè)置代理
對(duì)于Go版本1.13及以上:
go env -w GO111MODULE=on go env -w GOPROXY=https://proxy.golang.com.cn/,direct
“direct”是一個(gè)特殊指示符,用于指示Go在需要時(shí)回源到模塊版本的源地址(例如GitHub等)。如果在GOPROXY值列表中的前一個(gè)Go模塊代理返回404或410錯(cuò)誤,Go會(huì)自動(dòng)嘗試列表中的下一個(gè)代理,遇到“direct”時(shí)會(huì)回源,遇到EOF時(shí)會(huì)終止并拋出類似“invalid version: unknown revision…”的錯(cuò)誤。
對(duì)于其他版本,可以使用以下方式設(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
特點(diǎn):免費(fèi)開源,強(qiáng)大的社區(qū)支持,擴(kuò)展豐富,支持多種編程語言,包括Go。
官網(wǎng)地址:https://code.visualstudio.com/download
Go相關(guān)擴(kuò)展:在VsCode中使用Go開發(fā),你可以安裝以下一些常用的Go相關(guān)擴(kuò)展來增強(qiáng)開發(fā)體驗(yàn):
- Go - 微軟官方的Go擴(kuò)展,提供自動(dòng)補(bǔ)全、格式化、重構(gòu)等語言特性。
- gopls - 另一個(gè)語言服務(wù)器,提供智能提示、代碼跳轉(zhuǎn)、診斷等。有些人會(huì)覺得它比默認(rèn)的Go擴(kuò)展更好。
- Go Test Explorer - 在VS Code內(nèi)運(yùn)行測(cè)試并在側(cè)邊欄顯示結(jié)果。
- Go Modules - 支持Go modules,如導(dǎo)入語句的模塊路徑自動(dòng)補(bǔ)全。
- gocode-gomod - 使用Go Modules時(shí)自動(dòng)補(bǔ)全模塊。
- dlv-dap - 提供調(diào)試Delve調(diào)試器的配置。
- gotests - 自動(dòng)為你的代碼生成測(cè)試文件。
- guru - 集成guru工具,提供引用、定義等顯示。
- goreturns - 添加快捷鍵運(yùn)行g(shù)oreturns來格式化和組織導(dǎo)入語句。
3.2 Goland
特點(diǎn):Goland是JetBrains公司開發(fā)的商業(yè)IDE,專門用于Go語言開發(fā)。它提供了豐富的功能和工具,使Go開發(fā)更加高效和愉快。
官網(wǎng):https://www.jetbrains.com/go/
Go相關(guān)功能:Goland針對(duì)Go開發(fā)提供了許多功能,包括:
- 智能代碼補(bǔ)全:Goland具有高度智能的代碼補(bǔ)全功能,可以準(zhǔn)確地預(yù)測(cè)你要輸入的代碼,提高編碼速度。
- 深度集成:Goland深度集成了Go工具鏈,包括調(diào)試器、測(cè)試工具、代碼導(dǎo)航等,使開發(fā)流程更加順暢。
- 代碼重構(gòu):Goland支持各種代碼重構(gòu)操作,可以幫助你改進(jìn)代碼質(zhì)量和結(jié)構(gòu)。
- 實(shí)時(shí)錯(cuò)誤檢查:Goland會(huì)在你編寫代碼時(shí)實(shí)時(shí)檢查錯(cuò)誤和代碼質(zhì)量問題,并提供即時(shí)反饋。
- 版本控制:集成了常見的版本控制工具,如Git,方便團(tuán)隊(duì)協(xié)作和版本管理。
配置:
打開后點(diǎn)擊新建項(xiàng)目:
選擇一個(gè)項(xiàng)目路徑,和Go編譯器創(chuàng)建項(xiàng)目
繼續(xù)打開settings 設(shè)置Go Module 和 GOPROXY
Environment
正確填寫內(nèi)容:GOPROXY=https://goproxy.cn,direct
這些是常用的Go開發(fā)IDE中的兩個(gè)主要選擇。你可以根據(jù)自己的需求和偏好選擇其中一個(gè),它們都提供了強(qiáng)大的工具和功能來支持Go開發(fā)。
到此這篇關(guān)于Go 語言開發(fā)環(huán)境搭建的文章就介紹到這了,更多相關(guān)Go 開發(fā)環(huán)境搭建內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
從并發(fā)到并行解析Go語言中的sync.WaitGroup
Go?語言提供了許多工具和機(jī)制來實(shí)現(xiàn)并發(fā)編程,其中之一就是?sync.WaitGroup。本文就來深入討論?sync.WaitGroup,探索其工作原理和在實(shí)際應(yīng)用中的使用方法吧2023-05-05Go?Excelize?API源碼閱讀SetSheetViewOptions示例解析
這篇文章主要為大家介紹了Go-Excelize?API源碼閱讀SetSheetViewOptions示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08go的websocket實(shí)現(xiàn)原理與用法詳解
這篇文章主要介紹了go的websocket實(shí)現(xiàn)原理與用法,詳細(xì)分析了websocket的功能、原理及Go語言實(shí)現(xiàn)websocket的相關(guān)技巧,需要的朋友可以參考下2016-07-07golang使用redis實(shí)現(xiàn)全文搜索功能詳解
這篇文章主要為大家詳細(xì)介紹了golang如何使用redis實(shí)現(xiàn)全文搜索功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-02-02Go中的new()和make()函數(shù)區(qū)別及底層原理詳解
這篇文章主要為大家介紹了Go中的new()和make()函數(shù)區(qū)別及底層原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09