```````
testList := []uint16{1, 2, 3, 4}
myTest := testList //1.mytest 和 testList指向同一段
myTest = append(myTest, 9) //分离指向,所以在设计的时候最好给一个cap,不需要频繁的开辟内存
fmt.Println(testList)
```````
题主想要的是链表。
slice背后是数组不是链表,仔细想想2者的区别就可以明白了。这里使用数组作为slice是从性能考虑。但是使用数组就会有扩容问题,地址就会改变。如果再问为什么不改成内部自动指向新地址,那么你是要求go更改传值这个原则。那么你得想想为什么不传引用。说实在,本质上没有所谓的传引用,只是使用感觉上的问题。提示,和内存分配以及gc有关
#9
更多评论
<a href="/user/focusonline" title="@focusonline">@focusonline</a> 那请问range多重map[]map[]val呢,不注意么?
#2