Я новичок в Go и столкнулся с проблемами при доступе к структуре с переменной
У меня есть эта функция decodeUser
.Моя задача - проверить, присутствуют ли ключи в запросе.Так вот что я сделал.Я добавил комментарий, в котором я получил сообщение об ошибке.
func decodeUser(r *http.Request) (root.User, []string, error) {
var u root.User
if r.Body == nil {
return u, []string{}, errors.New("no request body")
}
decoder := json.NewDecoder(r.Body)
checks := []string{
"UserName",
"FirstName",
"LastName",
"Email",
}
emptyFields := []string{}
for _, check := range checks {
// i'm having problem over here `u[check]` it's showing (invalid
operation: u[check] (type root.User does not support
indexing))
if u[check] == nil {
emptyFields = append(emptyFields, check)
}
}
err := decoder.Decode(&u)
return u, emptyFields, err
}
На всякий случай я добавил root.User вот структура для него
type User struct {
ID string
Username string
Password string
FirstName string
LastName string
Email string
PhoneNumber string
PhoneNumberExtension string
DOB time.Time
AboutMe string
}
Проблема возникает, поскольку это не такПозвольте мне получить доступ к структуре с помощью переменной, и я не могу использовать этот метод u.check
.Так что в основном как мне заставить u[check]
работать ?