查看下面显示的Go文档,我无法理解接收器和参数之间的区别:
func (p *Page) save() error {
filename := p.Title + ".txt"
return ioutil.WriteFile(filename, p.Body, 0600)
}
此方法的签名如下: 这是一个名为save的方法,它将接收器p作为指针 页面。它不带参数,并返回类型错误的值。
答案 0 :(得分:8)
接收方与C#中的this
类似:在x.f(a, b, c)
中,接收方为x
,参数为a
,b
和c
。执行该函数时,参数引用参数的副本。接收器和参数之间的重要区别在于,当接收器是呼叫站点的接口类型时,要调用的函数是动态确定的而不是静态的。