用slice作为栈使用,久而久之是否空间会占很多?
来源:1-9 神奇的内置数据结构
啭地滴猫
2021-06-26 11:03:21
曹大,有个疑问确认下:slice栈的扩展问题利用slice底层自动扩容,但是有个问题,是不是slice越来越大是不是没法缩容,所占空间越来越多,比如我们的出栈操作:v := sl[len(sl)-1]; sl = sl[0:len(sl)-1]。但是实际底层上面还是存在一个很大数组。解决办法是在一定的时候重新创建slice吗?
1回答
Xargin
2021-06-26
确实没法缩容,
所以对 slice 进行复用的时候(比如 sync.Pool),很多时候也要判断要放的这个 slice 是不是太大了
这个在 runtime 里就有一些例子~
相似问题