I have a type:
type Measure struct {
Timestamp time.Time
Delta float64
}
I am converting a slice of measures to a map with the timestamp as key:
func MeasuresToMap(measures []models.Measure) map[string]models.Measure {
mapMeasures := make(map[string]models.Measure, len(measures)) //
for _, measure := range measures {
mapMeasures[measure.Timestamp.Format(time.RFC3339)] = measure
}
return mapMeasures
}
And I do:
mapMeasures := misc.MeasuresToMap(myMeasures)
for ts, _ := range mapMeasures {
mapMeasures[ts].Delta = 0
}
And I get:
Cannot assign to mapMeasures[ts].Delta
but what I can do:
for ts, measure := range mapMeasures {
measure.Delta = 0
mapMeasures[ts] = measure
}
What is the difference between the 2 options, why can't I update directly Delta field ?