Golang是一门区分大小写的语言。

命名规则涉及到:变量,常量,全局函数,结构,接口,方法。


## 一、大小写规范
GetUserNamegetUserName

二、包的命名规范

package mainmain

示例:

package dao
package service

三、文件的命名规范

  1. 尽量采用一些简短直观的文件名称。
  2. 文件名称一般为小写的单词,使用下划线分隔各个单词。

示例:

customer_dao.go

四、结构体的命名规范

struct

示例:

type CustomerOrder struct {
    Name string
    Address string
}
order := CustomerOrder{"Tom", "北京市海淀区"}

五、接口/函数的命名规范

erReader, Writer

示例:

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

六、变量的命名规范

DNSappServiceboolHas, Is, Can, Allow

示例:

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

七、常量的命名规范

  1. 命名简短直观。
  2. 单词使用全部大写,并使用下划线分词。
  3. 若为枚举类型的常量,则需要先创建相应类型。

示例:

type Scheme string		//为枚举类型常量创建相应类型
const {
    HTTP Scheme = "http"
    HTTPS Scheme = "https"
}

八、错误处理的命名规范

错误处理的原则:

  1. 不能丢弃任何有返回err的调用,不使用_丢弃,必须全部处理。
  2. 接收到错误时,要么返回err,或者使用log记录下来,尽早return。
  3. 一旦有错误发生,马上返回,尽量不使用panic,除非知道错误处理时应该做什么。
  4. 如果用英文进行错误描述,必须为小写,不需要使用标点结尾,采用独立的错误流进行处理。

示例:

// 正确写法
// 若产生错误
if err != nil {
    // 进行错误处理
    return //或者continue
}
// 若没产生错误,则进入正常代码

// 错误写法
if err != nil {
    // 进行错误处理
    return //或者continue
} else {
    // 正常代码
}

九、单元测试的命名规范

TestTestExampleexample_test.go

十、系统的预定义标识符

除了保留关键字之外,Golang语言系统还提供了36个预定义标识符,包括基础数据类型系统内嵌函数(不需要引入包,可以直接使用的函数)。

预定义标识符预定义标识符预定义标识符预定义标识符预定义标识符预定义标识符
appendboolbytecapclosecomplex
complex64complex128uint16copyfalsefloat32
float64imagintint8int16uint32
int32int64itoalenmakenew
nilpanicuint64printprintlnreal
recoverstringtrueuintuint8uintprt