Go切片特点笔记

特点

1.只有append操作

不支持随机增删

2.支持子切片

数组和切片都可以通过[start:end] 的形式

来获取子切片:

1.arr[start:end],获得[start,end)之间的元素。
2.arr[:end],获得[0,end)之间的元素。
3.arr[start:],获得[start,len(arr))之间的元素。

都是左闭右开!

3.内存共享问题

核心:共享数组。

子切片和切片究竟会不会互相影响,就抓住一点:

它们是不是还共享数组?

就是如果它们结构没有变化,那肯定是共享的;但是结构变化了,就可能不是共享了

什么情况下结构会发生变化?
扩容 了,

所以,任何情况下要判断是否内存共享,就注意一个点:有没有扩容。

相关推荐
VT.馒头5 分钟前
【力扣】2625. 扁平化嵌套数组
前端·javascript·算法·leetcode·职场和发展·typescript
wanghu20246 分钟前
AT_abc443_C~E题题解
c语言·算法
历程里程碑10 分钟前
Linux 17 程序地址空间
linux·运维·服务器·开发语言·数据结构·笔记·排序算法
u01092727113 分钟前
模板元编程调试方法
开发语言·c++·算法
2401_8384725137 分钟前
C++图形编程(OpenGL)
开发语言·c++·算法
-dzk-41 分钟前
【代码随想录】LC 203.移除链表元素
c语言·数据结构·c++·算法·链表
进击的小头1 小时前
陷波器实现(针对性滤除特定频率噪声)
c语言·python·算法
知无不研1 小时前
冒泡排序算法
算法·冒泡排序·排序
毅炼1 小时前
hot100打卡——day17
java·数据结构·算法·leetcode·深度优先
Tisfy1 小时前
LeetCode 3010.将数组分成最小总代价的子数组 I:排序 OR 维护最小次小
算法·leetcode·题解·排序·最小次小值