for range 中会为 i,v 申请各申请一块内存地址存储临时变量,遍历的时候后面的值会覆盖前面的
例子:
package main import ( "fmt" ) func main() { m := make(map[int]int) sliceList := []int{1,2,3,4} // for range 中会为 i,v 申请各申请一块内存地址存储临时变量,遍历的时候后面的值会覆盖前面的 for i,v:= range sliceList{ fmt.Printf("i %p \n",&i) fmt.Printf("k %p \n",&v) m[*(&i)]=*(&v) } for k, v := range m { fmt.Println(k, ":", v) } }
执行结果:
标签:遍历,int,fmt,申请,range,go From: https://www.cnblogs.com/zxqblogrecord/p/16753269.html