我正在学习Golang - 在教程中我经常看到这样的语法:
type SomeType struct {
//struct entries
}
以下:
func (t *SomeType) myFuncName(param1, param2) typeToReturn {
//function body and return
}
请解释什么指向struct(t * SomeType)的指针 - 为什么需要它以及这个语法的正确名称是什么 - 因为在官方文档中找不到解释是不可能的。
答案 0 :(得分:0)
这是一个类型定义,后跟一个带有定义类型的指针接收器的方法函数定义。请参阅the Go Language Specification on Method Sets。
所以
package main
import(
"fmt"
)
type TD struct {
Foo string
}
func (td *TD) Bar() {
td.Foo = `bar`
}
func main() {
a := new(TD)
a.Bar()
fmt.Println(a.Foo)
}
打印bar
它有点类似于一个类定义,后面是一些其他语言中的方法定义。