@asdasda11

Что за структура функции в Go?

Мне тут пришлось разбирать кусок go-кода, хотя на нём не пишу. Скажите, что значит этот синтаксис?
func (book *Book) findData(user user.User) bool {
...
err = database.Conn.QueryRow(....).Scan(&book.Object.id, &book.Object.Text)
...
if ...
return true
}


Вот что такое book *Book? Судя по коду, я так понял, что user - параметр функии, т.е. передаётся при вызове. bool - это то, что вернёт функция. Но что такое book?

Или вернёт и bool и ещё &book.Object.id, &book.Object.Text ? Scan ещё какой-то...
  • Вопрос задан
  • 795 просмотров
Решения вопроса 1
index0h
@index0h
PHP, Golang. https://github.com/index0h
book - это структура, методом которой является эта функция
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@mrobespierre
book - это ресивер, тип данных, который обладает данным методом. выше написали, что ресивер имеет тип "структура", так оно и есть в данном случае, и так оно и есть в 99% других случаев, но нельзя забывать важный нюанс - в Go, любой тип данных может иметь методы (не только struct), хоть string, хоть int
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы