欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Golang的命名規(guī)范及最佳實(shí)踐(推薦!)

 更新時(shí)間:2023年10月18日 11:38:09   作者:LJF_  
這篇文章主要給大家介紹了關(guān)于Golang的命名規(guī)范及最佳實(shí)踐的相關(guān)資料,命名規(guī)則涉及變量、常量、全局函數(shù)、結(jié)構(gòu)、接口、方法等的命名,文中介紹的非常詳細(xì),需要的朋友可以參考下

前言

Golang是一門區(qū)分大小寫的語言。

命名規(guī)則涉及到:變量,常量,全局函數(shù),結(jié)構(gòu),接口,方法。

一、大小寫規(guī)范

  • 任何需要對(duì)外暴露的名字,都必須以大寫字母開頭。

    當(dāng)命名以1個(gè)大寫字母開頭時(shí),如:GetUserName,那么使用這種形式的標(biāo)識(shí)符的對(duì)象,就可以被外部包的代碼使用(外部需要先導(dǎo)入這個(gè)包),這個(gè)過程也被稱為導(dǎo)出。

  • 不需要對(duì)外暴露的名字,以小寫字母開頭。

    當(dāng)命名以1個(gè)小寫字母開頭時(shí),如:getUserName,那么該對(duì)象就是對(duì)包外不可見的,但是在整個(gè)包的內(nèi)部都是可見并且可用的。

二、包的命名規(guī)范

  • 保持包名稱和目錄名稱一致。即package main對(duì)應(yīng)main的文件夾目錄
  • 盡量采用一些簡(jiǎn)短直觀的包名稱,不與標(biāo)準(zhǔn)庫產(chǎn)生沖突。
  • 包名稱一般為全小寫的單詞,不使用下劃線或者混合的大小寫。

示例:

package dao
package service

三、文件的命名規(guī)范

  • 盡量采用一些簡(jiǎn)短直觀的文件名稱。
  • 文件名稱一般為小寫的單詞,使用下劃線分隔各個(gè)單詞。

示例:

customer_dao.go

四、結(jié)構(gòu)體的命名規(guī)范

  • 命名簡(jiǎn)短直觀。
  • 一般采用駝峰命名法,首字母根據(jù)訪問情況控制大寫或小寫。
  • struct的聲明和初始化采用多行書寫。

示例:

type CustomerOrder struct {
    Name string
    Address string
}
order := CustomerOrder{"Tom", "北京市海淀區(qū)"}

五、接口/函數(shù)的命名規(guī)范

  • 命名簡(jiǎn)短直觀。
  • 和結(jié)構(gòu)體類似,一般采用駝峰命名法,首字母根據(jù)訪問情況控制大寫或小寫。
  • 以大寫字母開頭的函數(shù)(公有,包外可見),應(yīng)該添加注釋。
  • 聲明和初始化采用多行書寫。
  • 單個(gè)接口/函數(shù)的命名一般以er結(jié)尾作為后綴,例如:Reader, Writer。

示例:

type Reader interface {
    Read(p []byte) (n int, err error)
}

六、變量的命名規(guī)范

  • 命名簡(jiǎn)短直觀。

  • 和結(jié)構(gòu)體、函數(shù)/接口類似,一般采用駝峰命名法,首字母根據(jù)訪問情況控制大寫或小寫。

  • 如果遇到特有名詞(縮寫或簡(jiǎn)稱,如:DNS),需要遵循以下規(guī)則:

    若變量為私有,且特有名詞為首個(gè)單詞,則全部小寫,如:appService。

    若變量為公有,則特有名詞全部大寫。

    若變量為bool類型,則名稱以Has, Is, Can, Allow開頭。

示例:

var isExit bool
var hasConflict bool
var canManage bool
var allowGitHook bool

七、常量的命名規(guī)范

  • 命名簡(jiǎn)短直觀。
  • 單詞使用全部大寫,并使用下劃線分詞。
  • 若為枚舉類型的常量,則需要先創(chuàng)建相應(yīng)類型。

示例:

type Scheme string		//為枚舉類型常量創(chuàng)建相應(yīng)類型
const {
    HTTP Scheme = "http"
    HTTPS Scheme = "https"
}

八、錯(cuò)誤處理的命名規(guī)范

錯(cuò)誤處理的原則:

不能丟棄任何有返回err的調(diào)用,不使用_丟棄,必須全部處理。

接收到錯(cuò)誤時(shí),要么返回err,或者使用log記錄下來,盡早return。

一旦有錯(cuò)誤發(fā)生,馬上返回,盡量不使用panic,除非知道錯(cuò)誤處理時(shí)應(yīng)該做什么。

如果用英文進(jìn)行錯(cuò)誤描述,必須為小寫,不需要使用標(biāo)點(diǎn)結(jié)尾,采用獨(dú)立的錯(cuò)誤流進(jìn)行處理。

示例:

// 正確寫法
// 若產(chǎn)生錯(cuò)誤
if err != nil {
    // 進(jìn)行錯(cuò)誤處理
    return //或者continue
}
// 若沒產(chǎn)生錯(cuò)誤,則進(jìn)入正常代碼

// 錯(cuò)誤寫法
if err != nil {
    // 進(jìn)行錯(cuò)誤處理
    return //或者continue
} else {
    // 正常代碼
}

九、單元測(cè)試的命名規(guī)范

  • 一般情況下,測(cè)試用例函數(shù)名稱以Test開頭,如:TestExample。
  • 每個(gè)重要的函數(shù)都要首先編寫測(cè)試用例,測(cè)試用例和正規(guī)代碼一起提交,方便進(jìn)行回歸測(cè)試。
  • 單元測(cè)試文件名,一般使用小寫單詞,用下劃線連接,命名示例為:example_test.go

十、系統(tǒng)的預(yù)定義標(biāo)識(shí)符

除了保留關(guān)鍵字之外,Golang語言系統(tǒng)還提供了36個(gè)預(yù)定義標(biāo)識(shí)符,包括基礎(chǔ)數(shù)據(jù)類型系統(tǒng)內(nèi)嵌函數(shù)(不需要引入包,可以直接使用的函數(shù))。

預(yù)定義標(biāo)識(shí)符預(yù)定義標(biāo)識(shí)符預(yù)定義標(biāo)識(shí)符預(yù)定義標(biāo)識(shí)符預(yù)定義標(biāo)識(shí)符預(yù)定義標(biāo)識(shí)符
appendboolbytecapclosecomplex
complex64complex128uint16copyfalsefloat32
float64imagintint8int16uint32
int32int64itoalenmakenew
nilpanicuint64printprintlnreal
recoverstringtrueuintuint8uintprt

總結(jié) 

到此這篇關(guān)于Golang的命名規(guī)范及最佳實(shí)踐的文章就介紹到這了,更多相關(guān)Golang命名規(guī)范內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • golang中包無法引入問題解決

    golang中包無法引入問題解決

    本文主要介紹了golang中包無法引入問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Golang HTML 模板使用指南示例詳解

    Golang HTML 模板使用指南示例詳解

    本文詳細(xì)介紹了Golang HTML模板的使用方法,包括基礎(chǔ)模板、高級(jí)模板、完整應(yīng)用示例、CSS樣式、JavaScript交互等,文章強(qiáng)調(diào)了模板組織、代碼復(fù)用、語義化HTML、響應(yīng)式設(shè)計(jì)、性能優(yōu)化等最佳實(shí)踐,感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • Go語言定時(shí)任務(wù)cron的設(shè)計(jì)與使用

    Go語言定時(shí)任務(wù)cron的設(shè)計(jì)與使用

    這篇文章主要為大家詳細(xì)介紹了Go語言中定時(shí)任務(wù)cron的設(shè)計(jì)與使用,文中的示例代碼講解詳細(xì),對(duì)我們深入掌握Go語言有一定的幫助,需要的可以參考下
    2023-11-11
  • Golang?手寫一個(gè)簡(jiǎn)單的并發(fā)任務(wù)?manager

    Golang?手寫一個(gè)簡(jiǎn)單的并發(fā)任務(wù)?manager

    這篇文章主要介紹了Golang?手寫一個(gè)簡(jiǎn)單的并發(fā)任務(wù)?manager,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • 使用golang開發(fā)一個(gè)curl命令行工具

    使用golang開發(fā)一個(gè)curl命令行工具

    這篇文章主要為大家詳細(xì)介紹了如何使用golang開發(fā)一個(gè)簡(jiǎn)單的curl命令行工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • go?doudou應(yīng)用中使用枚舉類型教程示例

    go?doudou應(yīng)用中使用枚舉類型教程示例

    這篇文章主要為大家介紹了go?doudou應(yīng)用中使用枚舉類型教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • GoLang之使用Context控制請(qǐng)求超時(shí)的實(shí)現(xiàn)

    GoLang之使用Context控制請(qǐng)求超時(shí)的實(shí)現(xiàn)

    這篇文章主要介紹了GoLang之使用Context控制請(qǐng)求超時(shí)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Go語言服務(wù)器開發(fā)之簡(jiǎn)易TCP客戶端與服務(wù)端實(shí)現(xiàn)方法

    Go語言服務(wù)器開發(fā)之簡(jiǎn)易TCP客戶端與服務(wù)端實(shí)現(xiàn)方法

    這篇文章主要介紹了Go語言服務(wù)器開發(fā)之簡(jiǎn)易TCP客戶端與服務(wù)端實(shí)現(xiàn)方法,實(shí)例分析了基于Go語言實(shí)現(xiàn)的簡(jiǎn)易服務(wù)器的TCP客戶端與服務(wù)器端實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-02-02
  • Go語言原子操作atomic的使用

    Go語言原子操作atomic的使用

    本文介紹了Go語言原子操作的使用方法,原子操作是一種無鎖的技術(shù),可通過CPU指令實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-10-10
  • 一文帶你使用golang手?jǐn)]一個(gè)websocket中間件

    一文帶你使用golang手?jǐn)]一個(gè)websocket中間件

    這篇文章主要為大家詳細(xì)介紹了如何使用golang手?jǐn)]一個(gè)websocket中間件,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以參考一下
    2023-12-12

最新評(píng)論