Прямо сейчас у меня есть это:
type AppError struct{
Status int
Message string
}
func (h NearbyHandler) makeUpdate(v NearbyInjection) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
item, ok := v.Nearby[params["id"]]
if !ok {
return AppError{
500, "Missing item in map.",
}
}
}
}
проблема в том, что если я сделаю это:
func (h NearbyHandler) makeUpdate(v NearbyInjection) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) AppError { // <<< return AppError
}
}
, это не скомпилирует b / c http.HandlerFunc невернуть функцию, которая возвращает AppError.
Другой вопрос, который у меня возникает, как мне избежать явного возврата nil
, если я использую AppError в качестве возвращаемого значения?
Обратите внимание, что я получаю эту ошибку:
не может использовать литерал func (тип func (http.ResponseWriter, * http.Request) AppError) в качестве типа http.HandlerFunc в возвращаемом аргументе