【发布时间】:2021-09-25 22:54:27
【问题描述】:
我在 Go 中遇到了一段代码,
type Person struct {
Id int
}
func (Person) SayHello() (string) {
return "Hello"
}
这是否等同于 Go 中的类函数?这个的确切名称是什么?我在函数接收器中找不到这个。
调用部分也是这样的--Person.SayHello(Person{})
如果必须像这样传递 Person{},那么为什么要使用 func (Person) SayHello() (string)
而不是func (p *Person) SayHello() (string)
【问题讨论】:
-
在 Go 中没有类,或者任何与类完全等价的东西,因此不存在与“类函数”等价的东西。
-
这取决于你的具体用法,但最简单的方法就是做一个普通的函数。如果它不是一种方法,就不要让它成为一种方法。
标签: function go methods struct