Это моя структура:
type TableFields struct {
Name string
Family string
Age int
}
sample := TableFields{
Name: "bill",
Family: "yami",
Age: 25,
}
Это очень простой пример, который я использую для описания своей проблемы.
Я хочу изменить значения в структуре sample
, используя ключи и значения в map
, которые я получаю. Каждый раз, когда я получаю map
, ключи и значения будут отличаться. Как я могу использовать map
для редактирования sample
структуры?
Например:
updateTheseFieldsWithTheseVals := make(map[string]string)
updateTheseFieldsWithTheseVals["family"] = "yamie"
// this is my way
for key,val := range updateTheseFieldsWithTheseVals {
// sample.Family=yamie works, but is not the answer I am looking for
// sample.key = val *This solution is not possible*
oldValue := reflect.Indirect(reflect.ValueOf(get)).FieldByName(key).String()
fmt.Println(oldValue) // result is yami
oldValue = val
fmt.Println(oldValue) //result is yamie
}
fmt.Println(updateTheseFieldsWithTheseVals)
// result :
// {bill yami 25}
Запускается, но не изменяет значения в sample
.