func TestMapValuePointer2(t *testing.T) {
fmt.Println("Test Map Value Pointer 2")
m := map[string]int{"rsc": 3711, "r": 2138, "gri": 1908, "adg": 912}
n := len(m)
array := make([]*int, n)
i := 0
for _, v := range m {
array[i] = &v
fmt.Printf("Add to array: %d\n", v)
i++
}
for _, k := range array {
fmt.Printf("Value: %d\n", *k)
}
}
The output is not:
Value: 912 Value: 3711 Value: 2138 Value: 1908
Instead, the output maybe like:
Value: 912 Value: 912 Value: 912 Value: 912
Can someone explain why the results are like the above?