Djam36
@Djam36

Не могу понять смысл функции в go?

Привет есть пример функции
func (p *Page) save() error {
    filename := p.Title + ".txt"
    return ioutil.WriteFile(filename, p.Body, 0600)
}


Я не могу понять, это вроде как не анонимная функция, имя у неё save, что тогда значит func (p *page) это же получается не параметры функции? т.к параметры идут после имени, или я чего-то не понимаю
  • Вопрос задан
  • 256 просмотров
Решения вопроса 1
dasha_programmist
@dasha_programmist
ex Software Engineer at Reddit TS/React/GraphQL/Go
Это функция объекта, который имеет тип Page. Простыми словами ты не можешь вызвать save() глобально, а должен вызвать функцию p.save() у объекта. Соответственно внутри функции будет организован доступ к объекту.
type Page struct{}
func (p*Page) save() error{
  log.Println(p) // тут доступ к экземпляру у которого вызывается метод
  return nil
}
p:=&Page{}
err:=p.save()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы