为什么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

简单翻译总结有如下2点:

  1. 方法接受者名称应反映其身份, 并且不要使用me, this, self这些面向对象语言的典型标志符。
  2. 在Go中方法接受者其实就是方法的另一个参数。

在同一文件中,类型定义及常量/变量放上面,方法定义放下面

在同一文件中,如果存在类型、常量、变量、方法(公开/私有)定义的时候,如果您有C/C++的经验那您应该能理解到,我们最好按照以下顺序组织代码结构,以方便维护:

类型定义
常量定义
变量定义
方法定义(公开)
方法定义(私有)

例如:

// 类型定义
type Xxx struct {}

// 常量定义
const (
    internalConstName = "xxx"
)

// 变量定义
var (
    internalVariable = "xxx"
)

// 方法定义(公开)
func GetXxx() {

}

// 方法定义(私有)
func doGetXxx() {

}





Content Menu

  • No labels