您好,登錄后才能下訂單哦!
這篇文章主要講解了“Go基礎(chǔ)命名規(guī)范有哪些”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Go基礎(chǔ)命名規(guī)范有哪些”吧!
Go約定使用MixedCaps或者mixedCaps的形式,而不是下劃線來書寫多個(gè)單詞的名字。
項(xiàng)目名(倉庫名)的命名可以使用字母、數(shù)字。
多個(gè)單詞建議采用中劃線分隔,目前github中大多數(shù)項(xiàng)目都是使用用中劃線,不建議采用駝峰式分隔,不要使用下劃線(kubernetes中的組件名稱不允許使用下劃線)
命名可以是對(duì)項(xiàng)目功能的描述;也可以是一個(gè)代號(hào)(如神話人物的名字,或者希臘語),適合采用代號(hào)的項(xiàng)目有兩種,一種是公司的基礎(chǔ)組件或者開源項(xiàng)目,一般這種項(xiàng)目都有詳細(xì)的文檔,
項(xiàng)目名(倉庫名)要盡量避免重復(fù),如果可能重復(fù)要添加必要的前綴或者后綴做區(qū)分。
命名盡量在三個(gè)單詞以內(nèi)。
正確:
user、user-api、user-service,product、product-search、redis-go,druid、zeus、kubernetes.
錯(cuò)誤:
user_api、Product
保持package的名字和目錄保持一致,同一個(gè)文件夾所有源文件中的包名必須一致。
包名應(yīng)該為小寫單詞,不要使用下劃線或者混合大小寫。
package domainpackage main
盡量采取有意義的文件名,簡(jiǎn)短,有意義,應(yīng)該為小寫單詞,使用下劃線分隔各個(gè)單詞。
approve_service.go
采用駝峰命名法,首字母根據(jù)訪問控制大寫或者小寫
struct 申明和初始化格式采用多行,例如下面:
type MainConfig struct { Port string `json:"port"` Address string `json:"address"`}config := MainConfig{"1234", "123.221.134"}
命名規(guī)則基本和上面的結(jié)構(gòu)體類型
單個(gè)函數(shù)的結(jié)構(gòu)名以 “er” 作為后綴,例如 Reader , Writer 。
type Reader interface { Read(p []byte) (n int, err error)}
和結(jié)構(gòu)體類似,變量名稱一般遵循駝峰法,首字母根據(jù)訪問控制原則大寫或者小寫,但遇到特有名詞時(shí),需要遵循以下規(guī)則:
如果變量為私有,且特有名詞為首個(gè)單詞,則使用小寫,如 appService
若變量類型為 bool 類型,則名稱應(yīng)以 Has, Is, Can 或 Allow 開頭
作用域越小,命名應(yīng)該越簡(jiǎn)短。如在for循環(huán)內(nèi)部用i表示index。
常量均需使用全部大寫字母組成,并使用下劃線分詞
如果是枚舉類型的常量,需要先創(chuàng)建相應(yīng)類型:
錯(cuò)誤處理的原則就是不能丟棄任何有返回err的調(diào)用,不要使用 _ 丟棄,必須全部處理。接收到錯(cuò)誤,要么返回err,或者使用log記錄下來
盡早return:一旦有錯(cuò)誤發(fā)生,馬上返回
盡量不要使用panic,除非你知道你在做什么
錯(cuò)誤描述如果是英文必須為小寫,不需要標(biāo)點(diǎn)結(jié)尾
采用獨(dú)立的錯(cuò)誤流進(jìn)行處理
單元測(cè)試文件名命名規(guī)范為 example_test.go 測(cè)試用例的函數(shù)名稱必須以 Test 開頭,例如:TestExample 每個(gè)重要的函數(shù)都要首先編寫測(cè)試用例,測(cè)試用例和正規(guī)代碼一起提交方便進(jìn)行回歸測(cè)試 。
感謝各位的閱讀,以上就是“Go基礎(chǔ)命名規(guī)范有哪些”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Go基礎(chǔ)命名規(guī)范有哪些這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。