Go 方法中的接收者与参数
在 Go 中,理解接收者和参数的概念在使用方法时至关重要。
方法签名通常包含声明为方法接收者的参数。尽管它的名称如此,此接收器是参数的特殊情况。
什么是接收器?
接收器是一种语法功能,允许方法与具体类型。在给出的示例中:
func (p *Page) save() error
p *Page 是接收者,表示 save 方法附加到 *Page 类型。
Receiver 和 Parameter 之间的区别
接收者不是传统参数,因为它不需要显式传递到方法中。相反,接收者由调用者自动提供。
例如,要调用 save 方法,您可以编写:
p := &Page{"My Page", "This is my page"} p.save()
在这种情况下,p *Page 变量是save 方法的接收器。
语法糖
接收器的使用只是语法糖。它允许以方便的方式将方法附加到类型。但是,您可以通过将接收者声明为常规参数来实现相同的结果:
func save(p *Page) error
两个声明是等效的,并且会产生相同的结果。
有关进一步说明,请参阅提供了额外解释的答案。
以上是Go 方法中的接收者与参数:真正的区别是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!