用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 里就有一些例子~

0

Go高级工程师实战营

慕课网与 GoCN 社区官方联手打造,定义行业Go高级人才培养标准,4个月,快速晋升为P6+/D7级高级人才。

458 学习 · 266 问题

查看课程