gpt4 book ai didi

golang切片扩容规则实现

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章golang切片扩容规则实现由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

golang扩容规则 。

golang切片扩容规则实现

举个例子来演示下 。

此时容量由原来的4扩容到了8,你以为就是简单的2倍吗?那你可真理解错了,你得知道他背后扩容的原因,我来给你计算下 1、原来的容量为4,追加了5000,6000后变为了6个,此时4*2>6,满足了脑图中的第二种情况,并且元素个数小于1024,先扩容2倍 2、由于64位操作系统下,一个int类型占8个字节,所以8*8=64 3、此时匹配操作系统预先分配好的内存规格,规则正好匹配了64,所以用64/8=8,所以扩容后的容量为8 。

golang切片扩容规则实现

咱们再来一个例子看你是否真正理解了他的扩容规则, 这个例子最后容量为10 。

golang切片扩容规则实现

··· 慌不慌,你是不懂了吗?不懂我给你好好算一下 1⃣️原来容量是4,此时追加了5个元素,变为了9 2⃣️4*2<9,满足脑图中的第一个条件,由于int类型在64位操作系统下占用8个字节,所以用9*8=72 3⃣️所以此时需要匹配的内存规格为80 4⃣️用80/8=10,所以此时容量为10 。

··· 元素个数大于1024的我就不给你展示了,原理都是一样的,认认真真看完之后扩容规则肯定就懂了,不用再看其他的了 。

总结:切片扩容规则和你追加的元素个数有关 切片扩容和你匹配的操作系统分配的内存规格有关 和你定义的切片类型有关 。

到此这篇关于golang切片扩容规则实现的文章就介绍到这了,更多相关golang切片扩容 内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://blog.csdn.net/weixin_37509194/article/details/112001014 。

最后此篇关于golang切片扩容规则实现的文章就讲到这里了,如果你想了解更多关于golang切片扩容规则实现的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com