GO中这个奇怪的函数声明的原因是什么?

时间:2018-01-26 02:31:59

标签: go syntax

在我在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)
}

1 个答案:

答案 0 :(得分:-1)

go

没有你通常看到它们的类...相反,我们使用有问题的语法对类型声明方法,前面的参数称为receiver,如果我们使用pointer receiver我们得到reference类型语义,否则你得到value类型语义。查看go之旅,它很棒。