gpt4 book ai didi

go - slice 如何通过追加放大?容量总是翻倍吗?

转载 作者:IT老高 更新时间:2023-10-28 13:10:29 28 4
gpt4 key购买 nike

append slice 时, slice 可以根据需要放大。因为spec没有指定算法,我很好奇。

我尝试在 Go 源代码中找到 append 实现,但找不到。

谁能解释放大 slice 的指定算法?容量总是翻倍吗?或者谁能​​提供append的源代码位置?我可以自己查。

最佳答案

The code responsible for growing slices in append can be found here.

截至 2014-2020 年实现的规则是:

  1. 如果附加到 slice 会使其长度增加一倍以上,则将新容量设置为新长度。
  2. 否则,如果当前长度小于 1024,则将容量增加一倍,如果大于,则增加 25%。重复此步骤,直到新容量适合所需长度。

大概这不是规范的一部分,因此如果需要,将来可以更改启发式方法。您可以在 master branch 上查看此实现的最新版本。 .

关于go - slice 如何通过追加放大?容量总是翻倍吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23531737/

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