go append 函数常见操作

1. 将切片 b 的元素追加到切片 a 之后: a = append(a, b...)
2. 复制切片 a 的元素到新的切片 b 上:
1. b = make([]T, len(a))
2. copy(b, a)
3. 删除位于索引 i 的元素:
a = append(a[:i], a[i+1:]...)
4. 切除切片 a 中从索引 i 至 j 位置的元素: a = append(a[:i], a[j:]...)
5. 为切片 a 扩展 j 个元素长度: a = append(a, make([]T, j)...)
6. 在索引 i 的位置插入元素 x: a = append(a[:i], append([]T{x}, a[i:]...)...)
7. 在索引 i 的位置插入长度为 j 的新切片: a = append(a[:i], append(make([]T, j), a[i:]...)...)
8. 在索引 i 的位置插入切片 b 的所有元素: a = append(a[:i], append(b, a[i:]...)...)
9. 取出位于切片 a 最末尾的元素 x: x, a = a[len(a)-1], a[:len(a)-1]
10. 将元素 x 追加到切片 a: a = append(a, x)
因此,您可以使用切片和 append 操作来表示任意可变长度的序列。
从数学的角度来看,切片相当于向量,如果需要的话可以定义一个向量作为切片的别名来进行操作。
如果您需要更加完整的方案,可以学习一下 Eleanor McHugh 编写的几个包:sliceschain lists
posted @   牛奔  阅读(991)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示