为什么go
中的receiver name
不推荐使用this
或者self
在日常的开发中我们除了定义函数以外, 我们还会定义一些方法。这本来没有什么, 但是一些从PHP/Java或者其他面向对象语言转GO的同学往往会把receiver name
命名为this
, self
, me
等。
在Golang开发中,Go官方并不推荐将receiver name
命名为this
, self
, me。
我们来看一下Go官方推荐的标准命名Receiver Names:[https://github.com/golang/go/wiki/CodeReviewComments#receiver-names](https://github.com/golang/go/wiki/CodeReviewComments#receiver-names)
简单翻译总结有如下2点:
- 方法接受者名称应反映其身份, 并且不要使用
me
,this
,self
这些面向对象语言的典型标志符。 - 在Go中方法接受者其实就是方法的另一个参数。
在同一文件中,类型定义及常量/变量放上面,方法定义放下面
在同一文件中,如果存在类型、常量、变量、方法(公开/私有)定义的时候,如果您有C/C++的经验那您应该能理解到,我们最好按照以下顺序组织代码结构,以方便维护:
类型定义
常量定义
变量定义
方法定义(公开)
方法定义(私有)
例如:
// 类型定义
type Xxx struct {}
// 常量定义
const (
internalConstName = "xxx"
)
// 变量定义
var (
internalVariable = "xxx"
)
// 方法定义(公开)
func GetXxx() {
}
// 方法定义(私有)
func doGetXxx() {
}