面试中要谈对slice的理解,我之前一直回答3点
- slice和数组是2回事,它们之间的关系是:slice的底层存储是数组,而slice是描述了底层数组的一个片段,并不会实际存储数据。
- slice的底层数据结构有3部分: 1个指针字段记录指向底层数组的指针,2个int字段记录当前slice的len和cap。
- slice的扩容策略. 小于1024个元素时,2倍增长; >=1024个元素时,1.25倍增长。
现在总结下来,发现第3点是错的,因为还需要考虑字节对齐。具体参考资料1。
另外还需要补充第4点: slice的截取操作。具体也是参考资料1
4.1 https://tour.golang.org/moretypes/13
TODO
参考资料
- 深度解密Go语言之Slice https://juejin.im/post/5ca2b75f51882543ea4b81c8
- Go 切片Slice的长度len与容量cap https://blog.csdn.net/u013474436/article/details/88770501
对slice2个的误解
原文:https://www.cnblogs.com/yudidi/p/12152839.html