一尘不染

方法的接收者和参数之间有什么区别?

go

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

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

该方法的签名如下:这是一个名为save的方法,该方法将指向Page的指针作为其接收者p。它不带任何参数,并返回错误类型的值。


阅读 403

收藏
2020-07-02

共1个答案

一尘不染

该接收机是像this在C#:在x.f(a, b, c)所述接收器x和所述参数是abc。执行该函数时,参数引用参数的副本。接收方和参数之间的重要区别在于,当接收方是调用站点上的接口类型时,要调用的功能是动态而非静态确定的。

2020-07-02