AI智能
改变未来

GoLang学习一:编码规范、编码风格


编码规范

本规范旨在为日常Go项目开发提供一个代码的规范指导,方便团队形成一个统一的代码风格, 提高代码的可读性,规范性和统一性。本规范将从命名规范,注释规范,代码风格和Go语言提供的常用的工具这几个方面做一个说明。该规范参考了go语言官方代码的风格制定。

一、命名规范

命名是代码规范中很重要的一部分,统一的命名规则有利于提高的代码的可读性,好的命名仅仅通过命名就可以获取到足够多的信息。Go在命名时以字母a到Z或a到Z或下划线开头,后面跟着零或更多的字母、下划线和数字(0到9)。Go不允许在命名时中使用@、$和%等标点符号。Go是. 一种区分大小写的编程语言。因此,Manpower和manpower是两个不同的命名。首字母大写 public  小写 private1.当命名(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头, 如: Group1, 那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出(像面向对象语言中的public) ;2.命名如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像面向对象语言中的private )

1、包命名: package

保持package的名字和目录保持一致,尽量采取有意义的包名,简短,有意义,尽量和标准库不要冲突。包名应该为小写单词,不要使用下划线或者混合大小写。package demopackage main

2、文件命名

尽量采取有意义的文件名,简短,有意义,应该为小写单词,使用下划线分隔各个单词。my_test.go

3、结构体命名

●采用驼峰命名法,首字母根据访问控制大写或者小写●struct 申明和初始化格式采用多行,例如下面:
//多行申明type User struct{Username stringEmail string}// 多行初始化u := User{Username: \"astaxie\",Email: \"[email protected]\",}

4、接口命名

●命名规则基本和上面的结构体类型●单个函数的结构名以\"er\"作为后缀,例如Reader , Writer。
type Reader interface {Read(p []byte) (n int, err error)}

5、变量命名

●和结构体类似,变量名称一般遵循驼峰法,首字母根据访问控制原则大写或者小写,但遇到特有名词时,需要遵循以下规则:。如果变量为私有,且特有名词为首个单词,则使用小写,如apiclient。其它情况都应当使用该名词原有的写法,如APIClient. repolD. UserlD。错误示例: UrlArray, 应该写成urlArray或者URLArray●若变量类型为bool类型,则名称应以Has, Is, Can或Allow开头
var isExist boolvar hasConflict boolvar canManage boolvar allowGitHook bool

6、常量命名

常量均需使用全部大写字母组成,并使用下划线分词
const APP_VER = \"1.0\"
如果是枚举类型的常量,需要先创建相应类型:
type Scheme stringconst (HTTP Scheme = \"http\"HTTPS Scheme = \"https\")

7、关键字

下面的列表显示了Go中的保留字。这些保留字不能用作常量或变量或任何其他标识符名称。break default func interface selectcase defer Go map Structchan else Goto package Switchconst fallthrough if range Typecontinue for import return Var

二、代码风格

1、缩进和折行

●缩进直接使用gofmt工具格式化即可(gofmt是使用tab缩进的) ;●折行方面,一行最长不超过120个字符,超过的请使用换行展示,尽量保持格式优雅。我们使用Goland开发工具,可以直接使用快捷键: ctrl+alt+L, 即可。

2、语句的结尾

Go语言中是不需要类似于Java需要冒号结尾,默认一行就是一条数据如果你打算将多个语句写在同一行,它们则必须使用;
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » GoLang学习一:编码规范、编码风格