我使用VS Code Go扩展程序。
这是我的代码
func (this *MyClass) Xxx() error {}
它提到了我
导出的方法
MyClass.Xxx
应该有评论或未导出接收者名称应该反映其身份;不要使用通用名称,例如"
me
","this
"或"self
&# 34 ;;
答案 0 :(得分:5)
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没有没有私人领域/方法 虽然“接收器”在某种程度上仍然“神奇地提供”,但它与常规函数论证非常相似,它可以说是不计算的。