Недавно я начал изучать GoLang. Было несколько случаев, когда компилятор выдает ошибку, когда я пытаюсь передать переменные в качестве аргументов внутри функций Go. Я мог отлаживать это иногда, используя указатель перед переменной. Кажется, что оба указателя & и указатели * очищают ошибку. Хотя, я хотел бы понять, почему. Мне интересно, какая разница между &, и *, и когда каждый должен использоваться. Спасибо!
func (ctx *NewContext) SendNotification(rw http.ResponseWriter, req *http.Request, p httprouter.Params) {
decoder := json.NewDecoder(req.Body)
var u User
if err := decoder.Decode(&u); err != nil {
http.Error(rw, "could not decode request", http.StatusBadRequest)
return
}
}