去,为什么不能使用"这个"方法接收者名称

时间:2016-06-25 06:35:31

标签: reflection go visual-studio-code

我使用VS Code Go扩展程序。

这是我的代码

func (this *MyClass) Xxx() error {}

它提到了我

  

导出的方法MyClass.Xxx应该有评论或未导出

     

接收者名称应该反映其身份;不要使用通用名称,例如" me"," this"或" self&# 34 ;;

1 个答案:

答案 0 :(得分:5)

作为mentioned here

  

v.Method()实际上是语法糖,Go也理解它的脱糖版本:(T).Method(v)You can see an example here

package main

type T struct{}

func (t T) Method() {}

func main() {
    t := T{}
    t.Method()    // this is valid
    (T).Method(t) // this too
}
  

像任何其他参数一样命名接收器反映出它实际上只是另一个参数

由于Ixrec将其置于this answer

  

在其他语言中,this / self / whatever变量通常具有一些特殊属性,例如由语言神奇地提供,或者具有对私有方法的特殊访问权限(请记住Go没有没有私人领域/方法   虽然“接收器”在某种程度上仍然“神奇地提供”,但它与常规函数论证非常相似,它可以说是不计算的。