GO语言-切片特性以及容量的概念

时间:2024-03-27 08:20:55

1.切片的特点

  • 实际上指向底层模板数组的一直引用,因此创建切片的效率很好。
  • 修改切片实际会修改底层数组,修改底层数组的值会影响所有切片。

例如:
GO语言-切片特性以及容量的概念

2.切片底层的数据结构

切片很快的原因是因为切片最底层的数据结构里面,保存了一个指向底层数组的指针,一个int值长度,以及一个int值容量,并没有存储数组实体,因此创建和使用效率都很高。

3.容量:

GO语言-切片特性以及容量的概念

  • slice1的容量为4,因为切片实际包含的值为{“a”,”b”,”c”},下标到3,最大可切片下标为4,因为切片是一个前闭后开的切片[0,3),容量即为该切片最大能容纳的长度,这里即为4。
  • slice2的容量为1,因为是从下标3开是往后面切,因为是一个前闭后开的过程[3,4),只有一个元素”d”,因此容量为1。