I want to build a map with string key and struct value with which I'm able to update struct value in the map identified by map key.
I've tried this (playground):
func main() {
dataReceived := []Data{
Data{ID: "D1", Value: "V1"},
Data{ID: "D2", Value: "V2"},
Data{ID: "D3", Value: "V3"},
Data{ID: "D4", Value: "V4"},
Data{ID: "D5", Value: "V5"},
}
dataManaged := map[string]Data{}
for _, v := range dataReceived {
fmt.Println("Received ID:", v.ID, "Value:", v.Value)
dataManaged[v.ID] = v
}
fmt.Println()
for m, n := range dataManaged {
n.Value = "UpdatedData for " + n.ID
fmt.Println("Data key:", m, "Value:", n.Value)
}
fmt.Println()
for o, p := range dataManaged {
fmt.Println("Data key:", o, "Value:", p.Value)
}
}
and also this which doesn't give me desired output.
What I really want is this:
Received ID: D1 Value: V1
Received ID: D2 Value: V2
Received ID: D3 Value: V3
Received ID: D4 Value: V4
Received ID: D5 Value: V5
Data key: D1 Value: UpdatedData for D1
Data key: D2 Value: UpdatedData for D2
Data key: D3 Value: UpdatedData for D3
Data key: D4 Value: UpdatedData for D4
Data key: D5 Value: UpdatedData for D5
Data key: D1 Value: UpdatedData for D1
Data key: D2 Value: UpdatedData for D2
Data key: D3 Value: UpdatedData for D3
Data key: D4 Value: UpdatedData for D4
Data key: D5 Value: UpdatedData for D5