亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > 一文了解Go語言中編碼規(guī)范的使用

一文了解Go語言中編碼規(guī)范的使用

熱門標(biāo)簽:長沙ai機器人電銷 賺地圖標(biāo)注的錢犯法嗎 福州鐵通自動外呼系統(tǒng) 烏魯木齊人工電銷機器人系統(tǒng) 智能電銷機器人營銷 地圖標(biāo)注測試 澳門防封電銷卡 濮陽自動外呼系統(tǒng)代理 廣東語音外呼系統(tǒng)供應(yīng)商

每個語言都有自己特色的編碼規(guī)范,學(xué)習(xí)該語言的命名規(guī)范,能讓你寫出來的代碼更加易讀,更加不容易出現(xiàn)一些低級錯誤。

本文根據(jù)個人編碼習(xí)慣以及網(wǎng)絡(luò)上的一些文章,整理了一些大家能用上的編碼規(guī)范,可能是一些主流方案,但不代表官方,這一點先聲明一下。

1. 文件命名

由于 Windows平臺文件名不區(qū)分大小寫,所以文件名應(yīng)一律使用小寫

不同單詞之間用下劃線分詞,不要使用駝峰式命名

如果是測試文件,可以以 _test.go 結(jié)尾

文件若具有平臺特性,應(yīng)以 文件名_平臺.go 命名,比如 utils_ windows.go,utils_linux.go,可用的平臺有:windows, unix, posix, plan9, darwin, bsd, linux, freebsd, nacl, netbsd, openbsd, solaris, dragonfly, bsd, notbsd, android,stubs

一般情況下應(yīng)用的主入口應(yīng)為 main.go,或者以應(yīng)用的全小寫形式命名。比如MyBlog 的入口可以為 myblog.go

2. 常量命名

目前在網(wǎng)絡(luò)上可以看到主要有兩種風(fēng)格的寫法

第一種是駝峰命名法,比如 appVersion

第二種使用全大寫且用下劃線分詞,比如 APP_VERSION

這兩種風(fēng)格,沒有孰好孰弱,可自由選取,我個人更傾向于使用第二種,主要是能一眼與變量區(qū)分開來。

如果要定義多個變量,請使用 括號 來組織。

const (
  APP_VERSION = "0.1.0"
 CONF_PATH = "/etc/xx.conf"
)

3. 變量命名

和常量不同,變量的命名,開發(fā)者們的喜好就比較一致了,統(tǒng)一使用 駝峰命名法

  1. 在相對簡單的環(huán)境(對象數(shù)量少、針對性強)中,可以將完整單詞簡寫為單個字母,例如:user寫為u
  2. 若該變量為 bool 類型,則名稱應(yīng)以 Has, Is, Can 或 Allow 開頭。例如:isExist ,hasConflict 。
  3. 其他一般情況下首單詞全小寫,其后各單詞首字母大寫。例如:numShips 和 startDate 。
  4. 若變量中有特有名詞(以下列出),且變量為私有,則首單詞還是使用全小寫,如 apiClient。
  5. 若變量中有特有名詞(以下列出),但變量不是私有,那首單詞就要變成全大寫。例如:APIClient,URLString

這里列舉了一些常見的特有名詞:

// A GonicMapper that contains a list of common initialisms taken from golang/lint
var LintGonicMapper = GonicMapper{
  "API":  true,
  "ASCII": true,
  "CPU":  true,
  "CSS":  true,
  "DNS":  true,
  "EOF":  true,
  "GUID": true,
  "HTML": true,
  "HTTP": true,
  "HTTPS": true,
  "ID":  true,
  "IP":  true,
  "JSON": true,
  "LHS":  true,
  "QPS":  true,
  "RAM":  true,
  "RHS":  true,
  "RPC":  true,
  "SLA":  true,
  "SMTP": true,
  "SSH":  true,
  "TLS":  true,
  "TTL":  true,
  "UI":  true,
  "UID":  true,
  "UUID": true,
  "URI":  true,
  "URL":  true,
  "UTF8": true,
  "VM":  true,
  "XML":  true,
  "XSRF": true,
  "XSS":  true,
}

4. 函數(shù)命名

  1. 函數(shù)名還是使用 駝峰命名法
  2. 但是有一點需要注意,在 Golang 中是用大小寫來控制函數(shù)的可見性,因此當(dāng)你需要在包外訪問,請使用 大寫字母開頭
  3. 當(dāng)你不需要在包外訪問,請使用小寫字母開頭

另外,函數(shù)內(nèi)部的參數(shù)的排列順序也有幾點原則

  1. 參數(shù)的重要程度越高,應(yīng)排在越前面
  2. 簡單的類型應(yīng)優(yōu)先復(fù)雜類型
  3. 盡可能將同種類型的參數(shù)放在相鄰位置,則只需寫一次類型

5. 接口命名

使用駝峰命名法,可以用 type alias 來定義大寫開頭的 type 給包外訪問。

type helloWorld interface {
  func Hello();
}

type SayHello helloWorld

當(dāng)你的接口只有一個函數(shù)時,接口名通常會以 er 為后綴

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

5. 注釋規(guī)范

注釋分為

5.1 包注釋

位于 package 之前,如果一個包有多個文件,只需要在一個文件中編寫即可
如果你想在每個文件中的頭部加上注釋,需要在版權(quán)注釋和 Package前面加一個空行,否則版權(quán)注釋會作為Package的注釋。

// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package net

如果是特別復(fù)雜的包,可單獨創(chuàng)建 doc.go 文件說明

5.2 代碼注釋

用于解釋代碼邏輯,可以有兩種寫法

單行注釋使用 // ,多行注釋使用 /* comment */

// 單行注釋

/*
多
行
注
釋
*/

另外,對于代碼注釋還有一些更加苛刻的要求,這個看個人了,摘自網(wǎng)絡(luò):

所有導(dǎo)出對象都需要注釋說明其用途;非導(dǎo)出對象根據(jù)情況進行注釋。
如果對象可數(shù)且無明確指定數(shù)量的情況下,一律使用單數(shù)形式和一般進行時描述;否則使用復(fù)數(shù)形式。
包、函數(shù)、方法和類型的注釋說明都是一個完整的句子。
句子類型的注釋首字母均需大寫;短語類型的注釋首字母需小寫。
注釋的單行長度不能超過 80 個字符。
類型的定義一般都以單數(shù)形式描述:

// Request represents a request to run a command. type Request struct { ...

如果為接口,則一般以以下形式描述:

 // FileInfo is the interface that describes a file and is returned by Stat and Lstat.
 type FileInfo interface { ...

函數(shù)與方法的注釋需以函數(shù)或方法的名稱作為開頭:

// Post returns *BeegoHttpRequest with POST method.

如果一句話不足以說明全部問題,則可換行繼續(xù)進行更加細(xì)致的描述:

 // Copy copies file from source to target path.
 // It returns false and error when error occurs in underlying function calls.

若函數(shù)或方法為判斷類型(返回值主要為 bool 類型),則以 name> returns true if 開頭:

 // HasPrefix returns true if name has any string in given slice as prefix.
 func HasPrefix(name string, prefixes []string) bool { ...

5.3 特別注釋

  • TODO:提醒維護人員此部分代碼待完成
  • FIXME:提醒維護人員此處有BUG待修復(fù)
  • NOTE:維護人員要關(guān)注的一些問題說明

6. 包的導(dǎo)入

單行的包導(dǎo)入

import "fmt"

多個包導(dǎo)入,請使用 {} 來組織

import {
 "fmt"
 "os"
}

另外根據(jù)包的來源,對排版還有一定的要求

標(biāo)準(zhǔn)庫排最前面,第三方包次之、項目內(nèi)的其它包和當(dāng)前包的子包排最后,每種分類以一空行分隔。
盡量不要使用相對路徑來導(dǎo)入包。

import (
  "fmt"
  "html/template"
  "net/http"
  "os"
 
  "github.com/codegangsta/cli"
  "gopkg.in/macaron.v1"
 
  "github.com/gogits/git"
  "github.com/gogits/gfm"
 
  "github.com/gogits/gogs/routers"
  "github.com/gogits/gogs/routers/repo"
  "github.com/gogits/gogs/routers/user"
)

7. 善用 gofmt

除了命名規(guī)范外,Go 還有很多格式上的規(guī)范,比如

  1. 使用 tab 進行縮進
  2. 一行最長不要超過 80 個字符

因此在格式上的問題,你大部分都可以放心交由 gofmt 幫你調(diào)整。關(guān)于 gofmt 的文章還在寫,應(yīng)該這兩天就會更新。你可以過兩天再來看看。

參考文章:

Go語言(Golang)編碼規(guī)范

到此這篇關(guān)于一文了解Go語言中編碼規(guī)范的使用的文章就介紹到這了,更多相關(guān)Go語言編碼規(guī)范內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • golang語言編碼規(guī)范的實現(xiàn)

標(biāo)簽:阿克蘇 調(diào)研邀請 德州 西雙版納 貴陽 廣西 太原 慶陽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《一文了解Go語言中編碼規(guī)范的使用》,本文關(guān)鍵詞  一文,了解,語,言中,編碼,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《一文了解Go語言中編碼規(guī)范的使用》相關(guān)的同類信息!
  • 本頁收集關(guān)于一文了解Go語言中編碼規(guī)范的使用的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    成人在免费观看视频国产| 亚洲天堂在线播放| 免费一级片在线| 成人高清护士在线播放| 欧美激情中文字幕一区二区| 午夜在线影院| 美女被草网站| 国产伦久视频免费观看视频| 日本在线播放一区| 国产a视频| 日韩男人天堂| 亚州视频一区二区| 亚欧视频在线| 天天色色色| 高清一级毛片一本到免费观看| 国产伦久视频免费观看 视频| 亚洲天堂一区二区三区四区| 亚洲精品久久玖玖玖玖| 欧美大片一区| 九九精品在线播放| 免费一级片在线| 天天做日日爱夜夜爽| 国产精品自拍在线观看| 国产视频一区二区在线播放| 成人影视在线观看| 欧美大片毛片aaa免费看| 精品在线视频播放| 国产91精品露脸国语对白| 久久国产精品永久免费网站| 美女免费精品高清毛片在线视 | 成人av在线播放| 久久国产精品自线拍免费| 韩国毛片基地| 日本免费乱理伦片在线观看2018| 精品久久久久久综合网| 成人影院久久久久久影院| 台湾毛片| 99久久精品国产免费| 精品国产一区二区三区久| 精品国产亚一区二区三区| 国产亚洲免费观看| 日日夜人人澡人人澡人人看免| 欧美a级大片| 国产伦理精品| 日韩在线观看网站| 成人高清视频免费观看| 黄视频网站在线看| 日本乱中文字幕系列 | 国产福利免费视频| 日本在线www| 欧美一级视频高清片| 久久国产一久久高清| 精品国产亚洲一区二区三区| 黄视频网站在线免费观看| 99久久精品国产国产毛片| 成人免费观看网欧美片| 美女免费精品视频在线观看| 999精品视频在线| 天堂网中文在线| 国产成人欧美一区二区三区的| 九九久久国产精品| 黄色短视频网站| 久草免费在线色站| 欧美激情一区二区三区在线 | 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 久久精品成人一区二区三区| 国产麻豆精品高清在线播放| 91麻豆爱豆果冻天美星空| 成人免费观看的视频黄页| 日韩av东京社区男人的天堂| 欧美激情一区二区三区视频高清| 国产麻豆精品hdvideoss| 国产美女在线观看| 在线观看成人网 | 久久国产精品永久免费网站| 美国一区二区三区| 91麻豆国产级在线| 国产一区二区精品在线观看| 欧美大片毛片aaa免费看| 天堂网中文字幕| 国产亚洲男人的天堂在线观看| 精品久久久久久免费影院| 天堂网中文字幕| 日韩专区亚洲综合久久| 久久精品道一区二区三区| 国产美女在线一区二区三区| 沈樵在线观看福利| 精品在线观看一区| 麻豆污视频| 午夜欧美成人久久久久久| 国产视频久久久| 黄色免费网站在线| 91麻豆精品国产综合久久久| 日韩一级黄色片| 精品国产三级a| 四虎影视精品永久免费网站 | 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 亚欧成人毛片一区二区三区四区| 91麻豆爱豆果冻天美星空| 国产原创中文字幕| 国产不卡在线观看视频| 欧美另类videosbestsex高清| 久久精品欧美一区二区| 国产精品自拍在线| 国产麻豆精品免费视频| 精品久久久久久影院免费| 天堂网中文字幕| 亚洲精品久久久中文字| 九九热国产视频| 欧美大片aaaa一级毛片| 久草免费在线视频| 天天做日日爱夜夜爽| 亚洲天堂免费| 亚洲精品永久一区| 中文字幕一区二区三区精彩视频| 精品国产三级a∨在线观看| 99热精品一区| 四虎影视久久久| 999久久狠狠免费精品| 久久精品免视看国产明星| 中文字幕一区二区三区 精品 | 国产视频一区二区三区四区 | 日韩在线观看网站| 国产福利免费视频| 久久国产精品永久免费网站| 久久精品免视看国产成人2021| 国产综合91天堂亚洲国产| 久久福利影视| 成人影视在线观看| 国产91精品一区二区| 日韩av东京社区男人的天堂| 亚洲女初尝黑人巨高清在线观看| 国产精品自拍亚洲| 99久久精品国产免费| 日韩专区亚洲综合久久| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 中文字幕一区二区三区精彩视频 | 精品视频一区二区三区免费| 日日日夜夜操| 国产成人欧美一区二区三区的| 欧美另类videosbestsex久久| 亚洲天堂免费| 国产不卡在线观看视频| 国产综合91天堂亚洲国产| 国产视频一区在线| 日韩在线观看免费| 日韩av东京社区男人的天堂| 黄色福利| 一级女性全黄久久生活片| 九九免费精品视频| 高清一级做a爱过程不卡视频| 九九免费精品视频| 精品在线观看国产| 精品国产香蕉在线播出| 国产成人精品综合| 日韩男人天堂| 日韩专区在线播放| 国产一区二区精品| 亚洲女初尝黑人巨高清在线观看| 中文字幕一区二区三区精彩视频| 99热热久久| 国产91精品露脸国语对白| 国产一区二区福利久久| 免费一级片在线| 国产成人精品影视| 国产91精品一区| 天堂网中文字幕| 国产视频一区在线| 亚洲第一色在线| 日韩免费片| 91麻豆国产级在线| 91麻豆精品国产自产在线观看一区| 欧美激情一区二区三区中文字幕| 毛片成人永久免费视频| 欧美激情在线精品video| 久久精品人人做人人爽97| 国产精品自拍一区| a级毛片免费观看网站| 久久精品免视看国产成人2021| 国产伦久视频免费观看 视频| 久草免费在线观看| 欧美18性精品| 精品国产三级a| 久久久久久久网| 成人免费高清视频| 日韩欧美一二三区| 你懂的国产精品| 国产麻豆精品免费密入口| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 亚洲天堂免费观看| 欧美激情伊人| 天天做日日爱夜夜爽| 一级女性大黄生活片免费| 欧美1区| 精品国产一区二区三区免费| 你懂的在线观看视频| 超级乱淫黄漫画免费| 国产一区精品| 可以免费在线看黄的网站| 久久99中文字幕|