1.append 不修改切片内容,所以一般写法 s1 = append(s1,xxx)

go append 切片增加元素的时候并不会修改切片的内容,但是如果容量足够的情况下,会修改切片指向地址的内容。

go append分析_go


go append分析_javascript_02

2.append 如果不足以容纳附加的新内容的时候,会重新分配一个切片,原来的切片指向地址内容不会发生改变。

s1容量足够:sd的指向不会发生改变,仅仅长度发生变化。

s1容量不足:重新分配内存,s1指向新的new出来的区域块并且复制s1原来的内容,s1长度发生变化,s1旧的指向块区域内容不变。

go append分析_javascript_03


go append分析_javascript_04