关于到达1024后,扩容就改为25%,这个1024指什么?
来源:4-3 数组,字符串,切片底层是一样的吗?(二)

刘三月
2022-07-23
请问老师,这个扩容的时候判断扩容多少,1024是不是只表示数组的长度,也就是可容纳元素的数量。具体扩容后占的内存大小,要取决于切片内部的数据类型。我理解的对吗?
(一开始有点疑惑1024是指字节还是什么,听到后面您在13:35左右说256个字节,我以为是字节,但是看到源码又是直接取的cap去做扩容,所以有了这个疑惑。)
写回答
1回答
-
Moody
2022-07-23
1024指的确实是数组长度,占用内存就和元素的大小有关了
超过1024长度时,不会直接翻倍,而是每次扩1/4,比如现在长度正好是1024,需要扩容时,会扩1/4,也就是增加256个长度,新的长度就是1024+256=1280。
所以 这里256就是在这个例子里出现的,没有别的特殊含义。00
相似问题