重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
命令如下:
創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)西山,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):13518219792
直接在終端中輸入gohelp即可顯示所有的go命令以及相應(yīng)命令功能簡(jiǎn)介,主要有下面這些:
build:編譯包和依賴;clean:移除對(duì)象文件;doc:顯示包或者符號(hào)的文檔;env:打印go的環(huán)境信息;bug:啟動(dòng)錯(cuò)誤報(bào)告;fix:運(yùn)行g(shù)otoolfix;fmt:運(yùn)行g(shù)ofmt進(jìn)行格式化;generate:從processingsource生成go文件
get:下載并安裝包和依賴;install:編譯并安裝包和依賴;list:列出包;run:編譯并運(yùn)行g(shù)o程序;test:運(yùn)行測(cè)試;tool:運(yùn)行g(shù)o提供的工具;version:顯示go的版本;vet:運(yùn)行g(shù)otoolvet;命令的使用方式為:gocommand[args],除此之外,可以使用gohelp;來(lái)顯示指定命令的更多幫助信息。;在運(yùn)行g(shù)ohelp時(shí),不僅僅打印了這些命令的基本信息,還給出了一些概念的幫助信息:;c:Go和c的相互調(diào)用;buildmode:構(gòu)建模式的描述;filetype:文件類型;gopath:GOPATH環(huán)境變量
environment:環(huán)境變量;importpath:導(dǎo)入路徑語(yǔ)法;packages:包列表的描述;testflag:測(cè)試符號(hào)描述;testfunc:測(cè)試函數(shù)描述等。
一.幾種公共方法
1)Print:???輸出到控制臺(tái)(不接受任何格式化,它等價(jià)于對(duì)每一個(gè)操作數(shù)都應(yīng)用?%v)
print 在golang中?是屬于輸出到標(biāo)準(zhǔn)錯(cuò)誤流中并打印,官方不建議寫程序時(shí)候用它。可以再debug時(shí)候用
2)Println:?輸出到控制臺(tái)并換行
3)Printf :?只可以打印出格式化的字符串。只可以直接輸出字符串類型的變量(不可以輸出整形變量和整形等)
4)Sprintf:格式化并返回一個(gè)字符串而不帶任何輸出
5)Fprintf:來(lái)格式化并輸出到 io.Writers 而不是 os.Stdout
二.帶占位符輸出--網(wǎng)址:? ??
和python差不多的道理,這里簡(jiǎn)單補(bǔ)充
v ????值的默認(rèn)格式
%+v???添加字段名(如結(jié)構(gòu)體)
%#v ?相應(yīng)值的Go語(yǔ)法表示?
%T????相應(yīng)值的類型的Go語(yǔ)法表示?
%%????字面上的百分號(hào),并非值的占位符
%c?????相應(yīng)Unicode碼點(diǎn)所表示的字符?
%x?????十六進(jìn)制表示,字母形式為小寫 a-f
%X?????十六進(jìn)制表示,字母形式為大寫 A-F
%U???? Unicode格式:U+1234,等同于?"U+%04X"
隊(duì)列的概念在 順序隊(duì)列 中,而使用循環(huán)隊(duì)列的目的主要是規(guī)避假溢出造成的空間浪費(fèi),在使用循環(huán)隊(duì)列處理假溢出時(shí),主要有三種解決方案
本文提供后兩種解決方案。
順序隊(duì)和循環(huán)隊(duì)列是一種特殊的線性表,與順序棧類似,都是使用一組地址連續(xù)的存儲(chǔ)單元依次存放自隊(duì)頭到隊(duì)尾的數(shù)據(jù)元素,同時(shí)附設(shè)隊(duì)頭(front)和隊(duì)尾(rear)兩個(gè)指針,但我們要明白一點(diǎn),這個(gè)指針并不是指針變量,而是用來(lái)表示數(shù)組當(dāng)中元素下標(biāo)的位置。
本文使用切片來(lái)完成的循環(huán)隊(duì)列,由于一開(kāi)始使用三個(gè)參數(shù)的make關(guān)鍵字創(chuàng)建切片,在輸出的結(jié)果中不包含nil值(看起來(lái)很舒服),而且在驗(yàn)證的過(guò)程中發(fā)現(xiàn)使用append()函數(shù)時(shí)切片內(nèi)置的cap會(huì)發(fā)生變化,在消除了種種障礙后得到了一個(gè)四不像的循環(huán)隊(duì)列,即設(shè)置的指針是順序隊(duì)列的指針,但實(shí)際上進(jìn)行的操作是順序隊(duì)列的操作。最后是對(duì)make()函數(shù)和append()函數(shù)的一些使用體驗(yàn)和小結(jié),隊(duì)列的應(yīng)用放在鏈隊(duì)好了。
官方描述(片段)
即切片是一個(gè)抽象層,底層是對(duì)數(shù)組的引用。
當(dāng)我們使用
構(gòu)建出來(lái)的切片的每個(gè)位置的值都被賦為interface類型的初始值nil,但是nil值也是有大小的。
而使用
來(lái)進(jìn)行初始化時(shí),雖然生成的切片中不包含nil值,但是無(wú)法通過(guò)設(shè)置的指針變量來(lái)完成入隊(duì)和出隊(duì)的操作,只能使用append()函數(shù)來(lái)進(jìn)行操作
在go語(yǔ)言中,切片是一片連續(xù)的內(nèi)存空間加上長(zhǎng)度與容量的標(biāo)識(shí),比數(shù)組更為常用。使用 append 關(guān)鍵字向切片中追加元素也是常見(jiàn)的切片操作
正是基于此,在使用go語(yǔ)言完成循環(huán)隊(duì)列時(shí),首先想到的就是使用make(type, len, cap)關(guān)鍵字方式完成切片初始化,然后使用append()函數(shù)來(lái)操作該切片,但這一方式出現(xiàn)了很多問(wèn)題。在使用append()函數(shù)時(shí),切片的cap可能會(huì)發(fā)生變化,用不好就會(huì)發(fā)生擴(kuò)容或收縮。最終造成的結(jié)果是一個(gè)四不像的結(jié)果,入隊(duì)和出隊(duì)操作變得與指針變量無(wú)關(guān),失去了作為循環(huán)隊(duì)列的意義,用在順序隊(duì)列還算合適。
參考博客:
Go語(yǔ)言中的Nil
Golang之nil
Go 語(yǔ)言設(shè)計(jì)與實(shí)現(xiàn)