Я создаю простой сервер в памяти, прежде чем делать что-то с базой данных.У меня есть такой метод обновления:
type Nearby struct {
ID int `json:"id,omitempty"`
Me int `json:"me,omitempty"`
You int `json:"you,omitempty"`
ContactTime int64 `json:"contactTime,omitempty"`
}
func (h NearbyHandler) updateById(v NearbyInjection) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
params := mux.Vars(r)
decoder := json.NewDecoder(r.Body)
var t Nearby
err := decoder.Decode(&t)
if err != nil {
panic(err)
}
mtx.Lock()
item, ok := v.Nearby[params["id"]]
mtx.Unlock()
if !ok {
panic(errors.New("No item to update"))
}
// !! Ok, how can I overwrite the properties from t onto item
if ok {
json.NewEncoder(w).Encode(item)
} else {
io.WriteString(w, "null")
}
}
}
Я хочу взять ключ / значения из t и записать их в объект item.t
декодируется в структурное значение (я полагаю), а item является структурным значением, найденным на карте.И item
, и t
имеют один и тот же тип (Nearby
)
В JavaScript все, что я хочу сделать, это:
Object.assign(item, t);
Просто пытаюсь сделать что-то похожеес Go.
С Golang я могу сделать это:
item.ContactTime = t.ContactTime
, но я хочу перезаписать item.ContactTime
только если определено t.ContactTime
.