Go:方法接收器和参数之间有什么区别?

JTW*_*JTW 5 go

看看下面显示的G​​o文档,我无法理解接收器和参数之间的区别:

 func (p *Page) save() error {
     filename := p.Title + ".txt"
     return ioutil.WriteFile(filename, p.Body, 0600)
 }
Run Code Online (Sandbox Code Playgroud)

此方法的签名读取:这是一个名为save的方法,它将接收器p作为指向Page的指针.它不带参数,并返回类型错误的值.

rig*_*old 8

接收器就像this在C#中:在x.f(a, b, c)接收器中x,参数是a,bc.执行该函数时,参数引用参数的副本.接收器和参数之间的重要区别在于,当接收器是呼叫站点的接口类型时,要调用的函数是动态确定的而不是静态的.