func (db *Database) VerifyEmail(emailAddress string) (*data.UserName, error) {
....
}
Может кто-то, пожалуйста, помогите уточнить 1.what и 2.why с вышеуказанной функцией? Из книги docs и this я могу сказать, что VerifyEmail принимает в качестве параметра адрес электронной почты в качестве параметра и возвращает то, что, по моему мнению, является адресом памяти для имени пользователя.Параметры функции Go
Однако, что делает (db *Database)
? Я имею в виду, почему это положить после func
и до имени функции? И каковы могут быть некоторые причины передать адрес памяти функции в качестве указателя, а не переменной, представляющей его?
Это приемник метода (http://golang.org/ref/spec#Method_declarations), похожий на другие языки «это», и вы используете указатель, если объект может быть большим или может потребоваться метод для изменения объекта - если вы скопируете вещь, метод может изменить только * свою копию * объекта. – twotwotwo
@twotwotwo можете ли вы вставить это в ответ, чтобы я мог принять его? Спасибо! Делает смысл – Chris