delve 调试带参数_带你学够浪:Go语言基础系列-环境配置和 Hello world
前面幾周陸陸續(xù)續(xù)寫(xiě)了一些后端技術(shù)的文章,包括數(shù)據(jù)庫(kù)、微服務(wù)、內(nèi)存管理等等,我比較傾向于成體系的學(xué)習(xí),所以數(shù)據(jù)庫(kù)和微服務(wù)還有后續(xù)系列文章補(bǔ)充。
最近工作上比較多的 Golang 編程,現(xiàn)在很多互聯(lián)網(wǎng)公司都在轉(zhuǎn)向 Golang 開(kāi)發(fā),所以打算寫(xiě)一寫(xiě)有關(guān) Go 語(yǔ)言學(xué)習(xí)的系列文章,目標(biāo)是從 Go 基礎(chǔ)到進(jìn)階輸出一系列文章,沉淀下這些知識(shí)同時(shí)也給大家做參考,力求做到通俗易懂,即使你是 Golang 小白也能看懂,如果你是老手也能溫故知新。
本文將要和你分享 linux 下安裝 Golang 環(huán)境,并且講解如何通過(guò)配置 VSCode 遠(yuǎn)程開(kāi)發(fā)調(diào)試 Golang 程序。
下載源碼
你可以用系統(tǒng)自帶的包管理工具比如 yum 或 apt-get 來(lái)安裝Golang開(kāi)發(fā)環(huán)境。不過(guò),為了通用性,我選擇通過(guò)源碼的方式來(lái)安裝和講解,在官網(wǎng)下載源碼,下載地址 https://golang.org/dl/
手動(dòng)安裝
解壓安裝
我這里下載下來(lái)的源碼包 go1.14.2.linux-amd64.tar.gz 放到遠(yuǎn)程 Linux 服務(wù)器目錄下。執(zhí)行以下命令安裝到 /usr/local 目錄。
tar -zxvf -C /usr/local/ `go1.14.2.linux-amd64.tar.gz`創(chuàng)建工作空間
工作空間是你Go項(xiàng)目的「工作目錄」,挑選一個(gè)合適目錄,執(zhí)行下面操作:
mkdir GoPath mkdir -p GoPath/src mkdir -p GoPath/bin mkdir -p GoPath/pkg三個(gè)目錄含義:
src: 源碼路徑(例如:.go、.c、.h、.s 等)pkg: 編譯包時(shí),生成的.a文件存放路徑bin: 編譯生成的可執(zhí)行文件路徑配置環(huán)境變量
安裝過(guò)程中有這么幾個(gè)環(huán)境變量需要配置,先來(lái)了解一下:
GOROOT:Go的安裝路徑,也就是前面我們解壓到的目錄 /usr/local/go。
GOBIN:Go項(xiàng)目的二進(jìn)制文件存放目錄。
GOPATH:Go的工作空間。前面有介紹的工作空間目錄。
在 /etc/profile 文件追加以下內(nèi)容完成設(shè)置。
export GOROOT=/usr/local/go export GOPATH=/yourpath/GoPath # 設(shè)置你自己的GoPath路徑 export GOBIN=$GOPATH/bin export PATH=$PATH:$GOROOT/bin # 加入到PATH環(huán)境變量 export PATH=$PATH:$GOPATH/bin# source /etc/profile #立即生效驗(yàn)證安裝
# go version #檢查版本 # go version go1.14.2 linux/amd64 # 輸出版本號(hào)如果看到版本信息就代表安裝成功了!
遠(yuǎn)程開(kāi)發(fā)
上面我們?cè)?Linux 環(huán)境下安裝好了 Golang 開(kāi)發(fā)環(huán)境,但我不想每次打開(kāi)終端登錄服務(wù)器編寫(xiě)調(diào)試程序,怎么才能在本地PC開(kāi)發(fā)調(diào)試Golang程序呢?
看過(guò)我上一篇Vscode遠(yuǎn)程開(kāi)發(fā)的小伙伴應(yīng)該能想到方法,我們就要用Vscode搭建Golang遠(yuǎn)程開(kāi)發(fā)環(huán)境。具體的遠(yuǎn)程開(kāi)發(fā)配置可以查看我的另一篇文章。
Golang開(kāi)發(fā)插件
首先安裝官方推薦的 Go 開(kāi)發(fā)插件,如下,點(diǎn)他安裝。
接著還會(huì)出現(xiàn)如下的提示,是因?yàn)槿鄙倨渌?Go 開(kāi)發(fā)相關(guān)插件,點(diǎn) install all 全都裝上就行。
Hello World
編程界有個(gè)慣例,什么語(yǔ)言開(kāi)始學(xué)習(xí)都是從 Hello World 開(kāi)始。現(xiàn)在,我們就用 Golang 編寫(xiě)第一個(gè) HelloWorld 程序吧。
上代碼:
package main // 所有Go程序從main包開(kāi)始運(yùn)行import "fmt" // 導(dǎo)入fmt包func main() {fmt.Print("hello world", " i am ready to go :)n")fmt.Println("hello world", "i am ready to go :)") }格式化 包
fmt 實(shí)現(xiàn)了類(lèi)似 C++/C 語(yǔ)言的格式IO庫(kù)功能。
Print 和 Println 都可用于打印輸出,但是功能略有不同。可以看到我在Print 函數(shù)中,對(duì)后一個(gè)字符串加了空格和換行符,這樣兩個(gè)打印出來(lái)的結(jié)果是相同的。
Print采用默認(rèn)格式將其參數(shù)格式化并寫(xiě)入標(biāo)準(zhǔn)輸出。如果兩個(gè)相鄰的參數(shù)都不是字符串,會(huì)在它們的輸出之間添加空格。返回寫(xiě)入的字節(jié)數(shù)和遇到的任何錯(cuò)誤。
Println
func Println(a ...interface{}) (n int, err error)Println采用默認(rèn)格式將其參數(shù)格式化并寫(xiě)入標(biāo)準(zhǔn)輸出。總是會(huì)在相鄰參數(shù)的輸出之間添加空格并在輸出結(jié)束后添加換行符。返回寫(xiě)入的字節(jié)數(shù)和遇到的任何錯(cuò)誤。
調(diào)試
終端調(diào)試
在終端命令行源碼所在目錄輸入go run 運(yùn)行程序。
# go run HelloWorld.go //輸出 hello world i am ready to go :) hello world i am ready to go :)也可以先編譯go build 得到可執(zhí)行文件后再運(yùn)行。
# go build HelloWorld.go # ls HelloWorld HelloWorld.go # ./HelloWorld hello world i am ready to go :) hello world i am ready to go :)Vscode調(diào)試
按F5啟動(dòng)調(diào)試,編輯與調(diào)試控制臺(tái)輸出如下:
命令行參數(shù)獲取
命令行參數(shù)可以通過(guò)os 包的 Args 函數(shù)獲取,代碼如下:
package mainimport ("fmt""os""strconv" )func main() {// 命令行參數(shù)獲取,os.Args第一個(gè)參數(shù)是程序自身fmt.Println(os.Args)for idx, args := range os.Args {fmt.Println("參數(shù)"+strconv.Itoa(idx)+":", args)} }終端設(shè)置
以下是帶參數(shù)argv1 argv2 運(yùn)行g(shù)olang程序和輸出。
# go run basic.go argv1 argv2 # 輸出 [/tmp/go-build441686724/b001/exe/basic argv1 argv2] 參數(shù)0: /tmp/go-build441686724/b001/exe/basic 參數(shù)1: argv1 參數(shù)2: argv2VSCode設(shè)置
launch.json文件的 args 屬性配置可以設(shè)置程序啟動(dòng)調(diào)試的參數(shù)。
設(shè)置之后,按F5 啟動(dòng)調(diào)試,就會(huì)在調(diào)試控制臺(tái)輸出配置的參數(shù)。
環(huán)境變量獲取
命令行參數(shù)可以通過(guò)os 包的 Getenv 函數(shù)獲取,代碼如下:
package mainimport ("fmt""os" )func main() {// 獲取環(huán)境變量fmt.Println(os.Getenv("type"), os.Getenv("name"), os.Getenv("GOROOT")) }VSCode設(shè)置環(huán)境變量
launch.json 文件的 args 屬性配置可以設(shè)置 VSCode 調(diào)試的 Golang 程序環(huán)境變量。
設(shè)置的格式是:name:vaule 形式,注意都是字符串。
終端設(shè)置環(huán)境變量
終端的環(huán)境變量設(shè)置就是可以用 Linux 的 export 命令設(shè)置,之后就可以用 os.Getenv 函數(shù)讀取。
比如我們最初設(shè)置 GOROOT 環(huán)境變量的命令
export GOROOT=/usr/local/go
就可以用 os.Getenv("GOROOT") 讀取,比較簡(jiǎn)單,這里就不多說(shuō)了。
總結(jié)
現(xiàn)在,你有了一個(gè)可以遠(yuǎn)程開(kāi)發(fā)調(diào)試 Golang 的環(huán)境,趕緊去寫(xiě)個(gè) hello world 體驗(yàn)一下吧!今天的分享就到這,下一篇文章講解基礎(chǔ)語(yǔ)法。
老規(guī)矩,感謝各位的閱讀,文章的目的是分享對(duì)知識(shí)的理解,技術(shù)類(lèi)文章我都會(huì)反復(fù)求證以求最大程度保證準(zhǔn)確性,若文中出現(xiàn)明顯紕漏也歡迎指出,我們一起在探討中學(xué)習(xí)。今天的技術(shù)分享就到這里,我們下期再見(jiàn)。
原創(chuàng)不易,看到這里,如果在我這有一點(diǎn)點(diǎn)收獲,就動(dòng)動(dòng)手指「轉(zhuǎn)發(fā)」和「在看」是對(duì)我持續(xù)創(chuàng)作的最大支持。
總結(jié)
以上是生活随笔為你收集整理的delve 调试带参数_带你学够浪:Go语言基础系列-环境配置和 Hello world的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java学生签到系统视频教程_手把手教你
- 下一篇: 单片机读tf卡c语言程序,单片机读写U盘