理解slice容量在使用GO
GO slice结构数组:指向下面的数组备份slice。 len:slice中的元素数。表示它可以保留的元素数量。
,我们创建了一个新切片,该切片与原始阵列相同。但是,新切片的长度减小,而容量保持不变。这是因为基础数组具有足够的能力来容纳其余元素。在另一方面删除第一个n个项目
,我们不仅创建一个长度较短的新切片,而且还分配了一个新的基础数组。调整新切片的容量以容纳减少的元素。 int {2,3,5,7,11,13} printslice(S) //删除其最后两个值 s = s [:len(s)-2] printslice(S) //删除其前两个值 S = S [2:] printslice(S) } [2这是给出的 ptr = 0x450000 len = 4 cap = 6 [2 3 5 7] ptr = 0x450008 len = 2 cap = 4 [5 7] [5 7] 结论[&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&乐立,了解GO SLICES的内部结构对于有效操纵它们至关重要。通过认识到删除最后N项的影响与删除前N项目的影响不同,开发人员可以优化其代码并避免与SLICE调整有关的潜在性能问题。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3