【Golang系列】-标识符、关键字、命名规则

2022-03-01

标识符、关键字、命名规则

标识符

就是给变量、常量、函数、方法、结构体、数据、切片、接口起名字

标识符的组成

  • 由数字、字母和下划线组成
  • 只能以字母和下划线开头
  • 区分大小写

go语言关键字

25个关键字
breakdefaultfunc
selectcasedefer

go(去)map(地图)struct(结构体)chan(通道)else(其他的)goto(转到)package(包)switch(转换)constfallthroughifrangetypecontinueforimportreturnvar

36个预定义标识符

appendboolbytecapclosecomplexcomplex64complex128copyfalsefloat32float64imagintint8int16int32int64iotalenmakenewnilpanicprintprintlnrealreconverstringtureuintuint8uint16uint32uint64uintptr

举例说明
正确的命名


import "fmt"

func main(){
    var name string
    var age int
    var _sys int
}

错误的命名


import "fmt"

func main(){
    var 1name string
    var &age int
    var !email
}

go语言命名规范

go是一门区分大小写的语言

  • 任何需要对外暴露的名字必须以大写字母开头,不需要对外暴露的则应该用小写字母开头
  • 命名(常量、变量、类型、函数名、结构字段等)以一个字母开头

如:GetUserName,那么使用这种形式的标识符的对象就可以被外部包的代码所使用的

包名称

保持package的名字和目录保持一致,采取有意义的包名,简短,包名应该为小写单词,不要使用下划线或者混合大小写
package dao
package service

文件命名

应为小写单词,使用下划线分隔单词
cunsomer_dao.go

结构体命名

驼峰命名法,首字母根据访问控制大写或者小写
struct申明和初始化采用多行

type CustomerOrder struct{
    Nanme string
    Address string
}
order := CustomerOrder {"tom","北京昌平"}


接口命名

基本和上面结构体一致
单个函数的结构名以er作为后缀,例如:Reader,Writer

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

变量命名

和结构体类似,一般也是驼峰命名法,首字母根据访问控制原则大写或者小写。
如果变量为私有变量,且特有名词为首个单词,则使用小写

var isExist bool
var hasConflict bool
var canManage bool
var allowFitHook bool

常量命名

常量均需要使用全部大写字母组成,并使用下划线分词

const APP_URL = "https://www.baidu.com"

如果是枚举类型的常量,需要先创建相应类型


const (
    HTTP Scheme = "http"
    HTTPS Scheme = "https"
)

错误处理

错误处理的原则:

  • 不能丢弃任何有返回err的调用
  • 不能使用_丢弃,必须全部处理。
  • 接收的错误,要么返回err,或者使用log记录下来尽早return
  • 一旦有错误发生,马上返回
  • 尽量不使用panic,除非你知道你在做什么
  • 错误描述如果是英文必须为小写
  • 不需要标点结尾,采用独立的错误流进行处理
if err != nil {
    //错误处理
} else {
    //正确代码
}

//正确写法
if err !=nil {
    //错误处理
    return //或者继续
} 
//正确代码

单元测试

example_test.go 测试用例的函数名称必须以Test开头,例如:TestExample 每个重要的函数都要首先编写测试用例,测试用例和正规代码一起提交方便进行回归测试。