package aaaexample
// import顺序
// import (
// // golang标准库
// "xxx"
//
// // 该项目的包
// "xxx"
//
// // 公司内部包
// "xxx"
//
// // 外部第三方包,如github上的开源包
// "xxx"
// )
// 导出和未导出分开写,包级别的常量和变量在const 和 var中,单个可以直接使用
const (
Zero int = 0 // Zero 是导出常量的一个范例
IsZero bool = false // IsZero 是导出常量的一个范例
zero int = 0 // zero 是未导出常量的一个范例
hasZero bool = false // hasZero 是未导出常量的一个范例
)
var (
ZeroVar int = 0 // ZeroVar 是导出变量的一个范例
IsZeroVar bool = false // IsZeroVar 是导出变量的一个范例
zeroVar int = 0 // zeroVar 是未导出变量的一个范例
isZeroVar bool = false // isZeroVar 是未导出变量的一个范例
)
type (
// ZeroFun 是导出函数类型声明的一个范例
ZeroFun func() int
// zeroFun 是未导出函数类型声明的一个范例
zeroFun func() int
)
type (
// ZeroInterface 是导出的非空interface接口声明的一个范例
ZeroInterface interface {
Write(int, int) error // Write ....
Read(int, int) error // Read ....
}
// zeroInterface 是未导出的非空interface接口声明的一个范例
zeroInterface interface {
write(int, int) error // write ....
read(int, int) error // read ....
}
)
/*
init 是init的一个范例, init的只能操作本包的内容,不能直接/间接的调用/引用外部包内容
*/
func init() {
isZeroVar = (Zero == 0)
}
// Example 是结构体定义的一个范例,对结构体的注释写在这里
type Example struct {
ExampleField1 int // 例子字段1,对字段的注释写在这里
ExampleField2 *int // 例子字段2
}
/*
IsZero 是一个结构体接收器函数的编写范例, 返回false
返回值: @1: false
NOTE:这是一个结构体接收器函数范例, 关于函数的使用注意事项可以写在这
*/
func (e Example) HasZero() bool {
return hasZero
}
/*
IsZero 是一个指针接收器函数的编写范例, 返回false
返回值: @1: false
NOTE:这是一个指针接收器函数范例, 关于函数的使用注意事项可以写在这
*/
func (e *Example) IsZero() bool {
return IsZero
}
// 函数注释格式如下:参数:跟的是tab符, 其他空格都是空格符
// bug列表示例如下 bug后的括号中的名字是熟知这个bug的人名,出现的空格都是空格符,
// (人名)后跟的是该go文件中的出现该bug的方法名,最后是该bug的描述,
// bug列表应位于在包名下方的第一个位置
/*
AAAExampleAdd 是一个函数范例,实现两数a和b相加
参数: @a:被加数a; @b:被加数b
返回值: @1: 两数之和; @2: 函数错误码
BUG(陈晓扬) AAAExampleAdd 这是一个bug的范例,当a和b相加超过int能表示的范围时,会发生“溢出”
BUG(陈晓扬) AAAExampleAdd 这是一个bug的范例2,当a和b相加超过int能表示的范围时,会发生“溢出”
NOTE:这是一个函数范例, 关于函数的使用注意事项可以写在这
*/
func AAAExampleAdd(a, b int) (int, error) {
return a + b, nil
}
/*
AAAExampleSub 是一个函数范例,实现两数a减b
参数: @a: 减数a; @b: 被减数b
返回值: @1: 两数之差; @2: 函数错误码
BUG(陈晓扬) AAAExampleAdd 这是一个bug的范例,当。。。。。。。。。。。。。。。。。。。
NOTE:这是一个函数范例, 关于函数的使用注意事项可以写在这
*/
func AAAExampleSub(a, b int) (int, error) {
return a - b, nil
}