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

时间:2014-11-26 21:47:05

标签: go

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

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

此方法的签名如下:   这是一个名为save的方法,它将接收器p作为指针   页面。它不带参数,并返回类型错误的值。

1 个答案:

答案 0 :(得分:8)

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