下面这段代码输出什么,说明原因。
func main() {
slice := []int{0,1,2,3}
m := make(map[int]*int)
for key,val := range slice {
m[key] = &val
}
for k,v := range m {
fmt.Println(k,"->",*v)
}
}
下面这段代码输出什么,说明原因。
func main() {
slice := []int{0,1,2,3}
m := make(map[int]*int)
for key,val := range slice {
m[key] = &val
}
for k,v := range m {
fmt.Println(k,"->",*v)
}
}
`单行代码`
0 -> 3 1 -> 3 2 -> 3 3 -> 3
0 -> 3 1 -> 3 2 -> 3 3 -> 3
1.22高版本go解决了该问题
本来是解决了这个问题,但是这里又使用了指针,&val,所以又回到和以前一样的问题了