slice在删除头部元素时,cap=cap-1,删除非头部就不会,这是什么原因?

来源:3-3 切片的操作

慕后端1435519

2019-06-15

写回答

1回答

ccmouse

2019-06-15

同学可以再会看一下3-2切片的概念。

cap是从slice头部开始,到底下的数组结尾的大小。删除头部节点,是说类似a[1:]吧,头部往后移了一位,但是下面所看到的数组还是原本的数组,所以cap变小了。

非头部的话,类似a[:3],这样的话,这个slice的头部不变,底下看到的数组还是原来的数组,所以cap不变。此时如果使用append的话,会覆盖掉3之后的元素。


2
1
慕后端1435519
懂了,可以向右扩展,向左就不行
2019-06-17
共1条回复

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程