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

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ī)范

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

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

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

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

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

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

示例:

package dao
package service

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

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

示例:

customer_dao.go

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

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

示例:

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

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

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

示例:

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

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

  • 命名簡短直觀。

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

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

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

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

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

示例:

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

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

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

示例:

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

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

錯誤處理的原則:

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

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

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

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

示例:

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

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

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

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

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

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

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

總結(jié) 

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

相關(guān)文章

  • Go語言中JWT的創(chuàng)建和解析操作詳解

    Go語言中JWT的創(chuàng)建和解析操作詳解

    JWT的全名是Json web token,是為了在網(wǎng)絡(luò)應(yīng)用環(huán)境間傳遞聲明而執(zhí)行的一種基于JSON的開放標(biāo)準(zhǔn),這篇文章主要介紹了在Go語言中JWT的創(chuàng)建和解析操作,感興趣的同學(xué)可以參考下文
    2023-05-05
  • go語言中sort包的實(shí)現(xiàn)方法與應(yīng)用詳解

    go語言中sort包的實(shí)現(xiàn)方法與應(yīng)用詳解

    golang中也實(shí)現(xiàn)了排序算法的包sort包,所以下面這篇文章主要給大家介紹了關(guān)于go語言中sort包的實(shí)現(xiàn)方法與應(yīng)用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • 利用golang的字符串解決leetcode翻轉(zhuǎn)字符串里的單詞

    利用golang的字符串解決leetcode翻轉(zhuǎn)字符串里的單詞

    這篇文章主要介紹了利用golang的字符串解決leetcode翻轉(zhuǎn)字符串里的單詞,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Go?并發(fā)編程協(xié)程及調(diào)度機(jī)制詳情

    Go?并發(fā)編程協(xié)程及調(diào)度機(jī)制詳情

    這篇文章主要介紹了Go并發(fā)編程協(xié)程及調(diào)度機(jī)制詳情,協(xié)程是Go語言最大的特色之一,goroutine的實(shí)現(xiàn)其實(shí)是通過協(xié)程,更多相關(guān)內(nèi)容需要的朋友可以參考一下
    2022-09-09
  • Go單體服務(wù)開發(fā)最佳實(shí)踐總結(jié)

    Go單體服務(wù)開發(fā)最佳實(shí)踐總結(jié)

    這篇文章主要介紹了Go單體服務(wù)開發(fā)最佳實(shí)踐,通過本文詳細(xì)跟大家分享一下如何使用?go-zero?快速開發(fā)一個有多個模塊的單體服務(wù),需要的朋友可以參考下
    2022-04-04
  • Golang中使用Swagger生成API文檔的流程步驟

    Golang中使用Swagger生成API文檔的流程步驟

    Swagger 是一款強(qiáng)大的 API 文檔生成工具,可以幫助開發(fā)者輕松創(chuàng)建、管理和展示 RESTful API 文檔,在本文中,我們將介紹如何在 Golang 項(xiàng)目中使用 Swagger 來生成 API 文檔,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下
    2024-07-07
  • golang中json操作的完全指南

    golang中json操作的完全指南

    golang標(biāo)準(zhǔn)庫有一個名叫encoding/json的包,包含了JSON的序列化(Marshal)和反序列化(Unmarshal)的能力,下面這篇文章主要給大家介紹了關(guān)于golang中json操作的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • go module使用本地包的方法示例

    go module使用本地包的方法示例

    這篇文章主要介紹了go module使用本地包的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • 一文詳解Golang中字符串的常見錯誤

    一文詳解Golang中字符串的常見錯誤

    這篇文章主要來和大家深入討論一下Golang?中的字符串,并查看一些不同的場景,以避免常見錯誤,對大家掌握golang有一定的幫助,需要的可以了解下
    2023-10-10
  • Go語言jwt跨域鑒權(quán)的實(shí)現(xiàn)實(shí)例

    Go語言jwt跨域鑒權(quán)的實(shí)現(xiàn)實(shí)例

    本文詳細(xì)的介紹了JWT的基本概念,包括JWT的組成部分和簽名方法,及生成和解析JWT和設(shè)置認(rèn)證中間件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-11-11

最新評論

北辰区| 西和县| 厦门市| 陵水| 江阴市| 宁城县| 汾西县| 广平县| 肥东县| 马鞍山市| 韶关市| 古田县| 长治县| 榆林市| 临夏市| 东乡县| 绥棱县| 滦南县| 柞水县| 栾川县| 泽州县| 璧山县| 嘉禾县| 杭锦后旗| 西城区| 临泽县| 凤凰县| 新疆| 武冈市| 昌黎县| 岳西县| 蓝田县| 宝丰县| 楚雄市| 台北县| 郸城县| 织金县| 孟连| 尚志市| 德阳市| 乌鲁木齐市|