最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Golang 推薦的命名規(guī)范

 更新時(shí)間:2019年02月20日 14:52:59   作者:winjeg  
這篇文章主要介紹了詳解Golang 推薦的命名規(guī)范,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

Golang 推薦的命名規(guī)范

很少見(jiàn)人總結(jié)一些命名規(guī)范,也可能是筆者孤陋寡聞, 作為一個(gè)兩年的golang 開(kāi)發(fā)者, 我根據(jù)很多知名的項(xiàng)目,如 moby, kubernetess 等總結(jié)了一些常見(jiàn)的命名規(guī)范。 命名規(guī)范可以使得代碼更容易與閱讀, 更少的出現(xiàn)錯(cuò)誤。

如有不同意見(jiàn)歡迎吐槽、討論。 項(xiàng)目地址

文件命名規(guī)范

由于文件跟包無(wú)任何關(guān)系, 而又避免windows大小寫(xiě)的問(wèn)題,所以推薦的明明規(guī)范如下: 文件名應(yīng)一律使用小寫(xiě), 不同單詞之間用下劃線分割, 命名應(yīng)盡可能地見(jiàn)名知意

常量命名規(guī)范

常量明明用 camelcase來(lái)命名示例如下

const todayNews = "Hello"

// 如果超過(guò)了一個(gè)常量應(yīng)該用括號(hào)的方法來(lái)組織

const (
  systemName = "What"
  sysVal = "dasdsada"
)

變量命名規(guī)范

與常量命名方式一樣,變量也應(yīng)該使用駝峰的命名方式, 但注意盡量不與包名一致或者以包名開(kāi)頭

var x string
x := new(string)

函數(shù)命名規(guī)范

由于Golang的特殊性(用大小寫(xiě)來(lái)控制函數(shù)的可見(jiàn)性),除特殊的性能測(cè)試與單元測(cè)試函數(shù)之外, 都應(yīng)該遵循如下原則

  1. 使用駝峰命名
  2. 如果包外不需要訪問(wèn)請(qǐng)用小寫(xiě)開(kāi)頭的函數(shù)
  3. 如果需要暴露出去給包外訪問(wèn)需要使用大寫(xiě)開(kāi)頭的函數(shù)名稱(chēng)

一個(gè)典型的函數(shù)命名方法如下:

// 注釋一律使用雙斜線, 對(duì)象暴露的方法
func (*fileDao) AddFile(file *model.File) bool {
  result := db.NewRecord(*file)
  if result {
   db.Create(file)
  }
  return result
}
 
// 不需要給包外訪問(wèn)的函數(shù)如下
func removeCommaAndQuote(content string) string {
  re, _ := regexp.Compile("[\\`\\,]+")
  return strings.TrimSpace(re.ReplaceAllString(content, ""))
}

接口命名規(guī)范

接口命名也是要遵循駝峰方式命名, 可以用 type alias 來(lái)定義大寫(xiě)開(kāi)頭的type 給包外訪問(wèn)

type helloWorld interface {
  func Hello();
}

type SayHello helloWorld

Struct命名規(guī)范

與接口命名規(guī)范類(lèi)似

receiver 命名規(guī)范

golang 中存在receiver 的概念 receiver 名稱(chēng)應(yīng)該盡量保持一致, 避免this, super,等其他語(yǔ)言的一些語(yǔ)義關(guān)鍵字如下

type A struct{}

func (a *A) methodA() {
}
func (a *A) methodB() {
  a.methodA()
}

注釋規(guī)范

注釋?xiě)?yīng)一律使用雙斜線

其他

格式化, 用tab不是空格, 可以與go fmt 兼容

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Go語(yǔ)言中WaitGroup并發(fā)同步的實(shí)現(xiàn)

    Go語(yǔ)言中WaitGroup并發(fā)同步的實(shí)現(xiàn)

    本文主要介紹了Go語(yǔ)言中WaitGroup并發(fā)同步的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2026-04-04
  • 一文帶你了解Go語(yǔ)言標(biāo)準(zhǔn)庫(kù)math和rand的常用函數(shù)

    一文帶你了解Go語(yǔ)言標(biāo)準(zhǔn)庫(kù)math和rand的常用函數(shù)

    這篇文章主要為大家詳細(xì)介紹了Go語(yǔ)言標(biāo)準(zhǔn)庫(kù)math和rand中的常用函數(shù),文中的示例代碼講解詳細(xì), 對(duì)我們學(xué)習(xí)Go語(yǔ)言有一定的幫助,感興趣的小伙伴可以了解一下
    2022-12-12
  • Go多線程中數(shù)據(jù)不一致問(wèn)題的解決方案(sync鎖機(jī)制)

    Go多線程中數(shù)據(jù)不一致問(wèn)題的解決方案(sync鎖機(jī)制)

    在Go語(yǔ)言的并發(fā)編程中,如何確保多個(gè)goroutine安全地訪問(wèn)共享資源是一個(gè)關(guān)鍵問(wèn)題,Go語(yǔ)言提供了sync包,其中包含了多種同步原語(yǔ),用于解決并發(fā)編程中的同步問(wèn)題,本文將詳細(xì)介紹sync包中的鎖機(jī)制,需要的朋友可以參考下
    2024-10-10
  • 線上golang grpc服務(wù)資源泄露問(wèn)題排查

    線上golang grpc服務(wù)資源泄露問(wèn)題排查

    這篇文章主要介紹了線上golang grpc服務(wù)資源泄露問(wèn)題排查,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Golang Gorm實(shí)現(xiàn)自定義多態(tài)模型關(guān)聯(lián)查詢(xún)

    Golang Gorm實(shí)現(xiàn)自定義多態(tài)模型關(guān)聯(lián)查詢(xún)

    GORM 是一個(gè)流行的開(kāi)源 ORM (Object-Relational Mapping) 庫(kù),專(zhuān)為 Go 語(yǔ)言設(shè)計(jì),它簡(jiǎn)化了與 SQL 數(shù)據(jù)庫(kù)的交互,GORM 封裝了數(shù)據(jù)庫(kù)操作,使得開(kāi)發(fā)者能夠通過(guò)簡(jiǎn)單的鏈?zhǔn)秸{(diào)用來(lái)執(zhí)行 CRUD,本文給大家介紹了Golang Gorm實(shí)現(xiàn)自定義多態(tài)模型關(guān)聯(lián)查詢(xún),需要的朋友可以參考下
    2024-11-11
  • Go中并發(fā)控制的實(shí)現(xiàn)方式總結(jié)

    Go中并發(fā)控制的實(shí)現(xiàn)方式總結(jié)

    在Go實(shí)際開(kāi)發(fā)中,并發(fā)安全是老生常談的事情,在并發(fā)下,goroutine之間的存在數(shù)據(jù)資源等方面的競(jìng)爭(zhēng),為了保證數(shù)據(jù)一致性、防止死鎖等問(wèn)題的出現(xiàn),在并發(fā)中需要使用一些方式來(lái)實(shí)現(xiàn)并發(fā)控制,本文給大家總結(jié)了幾種實(shí)現(xiàn)方式,需要的朋友可以參考下
    2023-12-12
  • 一文教你學(xué)會(huì)Go中singleflight的使用

    一文教你學(xué)會(huì)Go中singleflight的使用

    緩存在項(xiàng)目中使用應(yīng)該是非常頻繁的,提到緩存只要了解過(guò)?singleflight?,基本都會(huì)用于緩存實(shí)現(xiàn)的一部分吧,下面就跟隨小編一起來(lái)學(xué)習(xí)一下singleflight的使用吧
    2024-02-02
  • golang實(shí)現(xiàn)并發(fā)數(shù)控制的方法

    golang實(shí)現(xiàn)并發(fā)數(shù)控制的方法

    下面小編就為大家分享一篇golang實(shí)現(xiàn)并發(fā)數(shù)控制的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • 使用Go語(yǔ)言編寫(xiě)簡(jiǎn)潔代碼的最佳實(shí)踐

    使用Go語(yǔ)言編寫(xiě)簡(jiǎn)潔代碼的最佳實(shí)踐

    簡(jiǎn)潔的代碼對(duì)于創(chuàng)建可維護(hù)、可閱讀和高效的軟件至關(guān)重要,Go 是一種強(qiáng)調(diào)簡(jiǎn)單和代碼整潔的語(yǔ)言,在本文中,我們將結(jié)合代碼示例,探討編寫(xiě)簡(jiǎn)潔 Go 代碼的最佳實(shí)踐,需要的朋友可以參考下
    2023-09-09
  • 聊聊Golang性能分析工具pprof的使用

    聊聊Golang性能分析工具pprof的使用

    對(duì)于線上穩(wěn)定運(yùn)行的服務(wù)來(lái)說(shuō),?可能會(huì)遇到?cpu、mem?利用率升高的問(wèn)題,那我們就需要使用?pprof?工具來(lái)進(jìn)行性能分析,所以本文就來(lái)和大家講講pprof的具體使用吧
    2023-05-05

最新評(píng)論

德州市| 宜宾县| 惠州市| 郸城县| 凯里市| 平安县| 阿城市| 大余县| 阿克| 正镶白旗| 米易县| 荔波县| 凤冈县| 沁源县| 平原县| 娱乐| 承德市| 石景山区| 西乡县| 文昌市| 偃师市| 砀山县| 张北县| 盈江县| 三门峡市| 崇礼县| 海宁市| 景宁| 东乌| 昌都县| 汪清县| 枝江市| 合水县| 伊宁市| 浙江省| 兴业县| 广河县| 台北县| 沈丘县| 修文县| 谢通门县|