在我在Go中看到的大多数函数声明中,格式是Name,Arguments,Output。如下:
func add(a, b int) int {
return a + b
}
但是在这个例子中,指针是在声明的开头给出的,而不是在名字后面的参数部分。我的问题是:这种格式的原因是什么?指针在他们的论证时是否有不同的写法?
func (p *Page) save() error {
filename := p.Title + ".txt"
return ioutil.WriteFile(filename, p.Body, 0600)
}
答案 0 :(得分:-1)
go
中没有你通常看到它们的类...相反,我们使用有问题的语法对类型声明方法,前面的参数称为receiver
,如果我们使用pointer receiver
我们得到reference
类型语义,否则你得到value
类型语义。查看go
之旅,它很棒。