【Golang系列】-标识符、关键字、命名规则
2022-03-01
标识符、关键字、命名规则
标识符
就是给变量、常量、函数、方法、结构体、数据、切片、接口起名字
标识符的组成
- 由数字、字母和下划线组成
- 只能以字母和下划线开头
- 区分大小写
go语言关键字
25个关键字
break | default | func |
---|---|---|
select | case | defer |
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 每个重要的函数都要首先编写测试用例,测试用例和正规代码一起提交方便进行回归测试。