【golang學習記錄】環(huán)境搭建

一. 概述

本文是【golang學習記錄】系列文章的第一篇,安裝Go語言及搭建Go語言開發(fā)環(huán)境,接下來將詳細記錄自己學習 go 語言的過程,一方面是為了鞏固自己學到的內容,另一方面希望對有同樣需求的小伙伴提供一些幫助。

二. 下載并安裝 Go

Go官網下載地址(在國內無法訪問):https://golang.org/dl/

Go官方鏡像站(推薦)https://golang.google.cn/dl/

在Windows中通過可執(zhí)行文件來安裝會自動配置 GOROOT 環(huán)境變量,省去了手動配置環(huán)境變量的麻煩,個人覺得通過下載 zip 包,配置環(huán)境變量安裝能夠更好理解安裝流程。

我這里是在 windows 中安裝 Go ,所以直接選擇 windows 的安裝方式即可,如下圖所示:

image-20211116143523053

下載完成后,雙擊下載好的文件,然后按照下圖所示步驟安裝:

image-20211116144036899

如果你本地已經安裝了低版本的 Go,那么點擊 Next 后會提示你卸載舊版的 Go,根據提示卸載即可。

image-20211116144438047
image-20211116144547285

等待安裝完成,出現下圖,即表示安裝成功:

image-20211116145004279

因為通過可執(zhí)行文件安裝過程中已經自動配置好了環(huán)境變量,所以直接在 CMD 控制臺輸入 go version 命令驗證 Go 是否安裝成功:

> go version
go version go1.17.3 windows/amd64

三. Go 環(huán)境變量配置和說明

CMD 控制臺輸入 go env 命令查看配置的環(huán)境變量:

C:\Users\admin>go env
set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\admin\AppData\Local\go-build
set GOENV=C:\Users\admin\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS= -mod=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\Users\admin\go\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=C:\Users\admin\go
set GOPRIVATE=
set GOPROXY=https://goproxy.cn,direct
set GOROOT=D:\environment\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=D:\environment\Go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.17.3
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=NUL
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\admin\AppData\Local\Temp\go-build3769788971=/tmp/
go-build -gno-record-gcc-switches

Go1.14版本之后,都推薦使用go mod模式來管理依賴環(huán)境了,也不再強制我們把代碼必須寫在GOPATH下面的src目錄了,你可以在你電腦的任意位置編寫go代碼。

其中我們比較關心的環(huán)境變量有如下幾個:

  • GOPATH:可以理解為 go 的工作目錄,此目錄包含兩個文件夾

    -- bin:存放 go 編譯生成的可執(zhí)行文件

    -- pkg:存放 go 項目依賴的第三方 module

  • GOROOT:是我們安裝 go 開發(fā)包的路徑

  • GO111MODULE:要啟用go module支持首先要設置環(huán)境變量GO111MODULE,通過它可以開啟或關閉模塊支持,它有三個可選值:off、onauto,默認值是on。

    1. GO111MODULE=off禁用模塊支持,編譯時會從GOPATHvendor文件夾中查找包。
    2. GO111MODULE=on啟用模塊支持,編譯時會忽略GOPATHvendor文件夾,只根據 go.mod下載依賴。
    3. GO111MODULE=auto,當項目在$GOPATH/src外且項目根目錄有go.mod文件時,開啟模塊支持。

    使用 go module 管理依賴后會在項目根目錄下生成兩個文件go.modgo.sum。

  • GOPROXY:Go1.13之后GOPROXY默認值為https://proxy.golang.org,在國內是無法訪問的,所以十分建議大家設置GOPROXY,這里我推薦使用goproxy.cn。通過如下命令設置:

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

四. Go 開發(fā)工具

Go 采用的是 UTF-8 編碼的文本文件存放源代碼,理論上使用任何一款文本編輯器都可以做 Go 語言開發(fā),比較常用的開發(fā)工具是 VS CodeGoland。 VS Code是微軟開源的編輯器,而Goland是 jetbrains 出品的付費 IDE。

因為我是做的比較多的是 Java 開發(fā),使用的是 idea,并且習慣了 idea 不想下載其他的開發(fā)工具,所以這里介紹在 idea 中安裝 Go 插件進行開發(fā)。

打開 idea 在 Plugins 中搜索 go ,安裝下圖所示的插件:

image-20211116170251306

安裝完成后,最好是重啟一下 idea,讓插件生效。安裝好插件之后,go 的開發(fā)工具其實就配置好了,

五. 第一個 Go 程序

現在我們來創(chuàng)建第一個Go項目——hello-go,在我們桌面創(chuàng)建一個hello-go目錄。

使用 go module 模式新建項目時,我們需要通過 go mod init 項目名 命令對項目進行初始化,該命令會在項目根目錄下生成 go.mod 文件。例如,我們使用hello-go 作為我們第一個Go項目的名稱,在前面創(chuàng)建目錄的 cmd 命令行中執(zhí)行如下命令:

go mod init hello-go

查看生成的 go.mod 文件:

> cat go.mod
module hello-go

go 1.17

使用 idea 打開 hello-go 目錄,idea 會提示你沒有配置 GOROOT,我們根據提示,添加安裝的 GOROOT路徑即可。選擇項目,右鍵新建一個 Go File 文件:

image-20211116172302837
image-20211116172405071

main.go 文件中輸入如下內容:

package main  // 聲明 main 包,表明當前是一個可執(zhí)行程序

import "fmt"  // 導入內置 fmt 包

func main(){  // main函數,是程序執(zhí)行的入口
    fmt.Println("Hello World!")  // 在終端打印 Hello World!
}
image-20211116172635327

在 idea 中的第一個 Go 程序就運行成功了~

cmd 終端中輸入命令 go run main.go也可以執(zhí)行程序,該命令本質上也是先編譯再執(zhí)行。

編譯 Go 程序為可執(zhí)行文件

go build命令表示將源代碼編譯成可執(zhí)行文件。

在 idea 的終端中執(zhí)行下面的命令,如下圖所示:

image-20211116173548406

默認我們go build的可執(zhí)行文件都是當前操作系統(tǒng)可執(zhí)行的文件,它先編譯源代碼在當前目錄生成可執(zhí)行文件,所以我們可以在當前目錄執(zhí)行 hello-go.exe,如果我們希望在其他地方也可以執(zhí)行,則需要使用 go install 命令。

go install表示安裝的意思,它先編譯源代碼得到可執(zhí)行文件,然后將可執(zhí)行文件移動到GOPATHbin 目錄下。因為我們的環(huán)境變量中配置了GOPATH下的 bin 目錄,所以我們就可以在任意地方直接執(zhí)行可執(zhí)行文件了。

參考文檔

https://www.liwenzhou.com/posts/Go/install_go_dev/

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容