切片ik通過索引訪問,然后為每個map分配內存;
切片jk通過獲得切片內每個元素的拷貝來分配內存,並未成功為切片內每個map分配內存,使用時賦值也就失敗了
1 package main 2 3 import fmt 4 5 func main(){ 6 ik := make([]map[int]int,5) 7 for i := range ik { 8 ik[i]=make(map[int]int,1) 9 ik[i][i]=i 10 } 11 fmt.Printf("value of ik :%v\n",ik) 12 13 jk := make([]map[int]int,5) 14 for i,va := range jk { 15 va = make(map[int]int,1) 16 va[i]=i 17 } 18 fmt.Printf("value of jk :%v\n",jk) 19 }