要素をスライスに追加する場合、その容量を拡張する必要がある場合があります。この拡大に使用される特定のアルゴリズムは、Go 仕様では明示的に定義されていません。
追加操作でスライスのサイズを変更するコードは、Go ソース コード リポジトリにあります。
https://github.com/golang/go/blob/master/src/runtime/slice.go
2014 年から 2020 年現在、実装されているルールは次のとおりです:
いいえ、スライスを拡大するときに容量が常に 2 倍になるわけではありません。
上記の戦略により、元のスライスの長さに応じて容量がさまざまに増加する可能性があります。さらに、これらのヒューリスティックは将来の Go バージョンで変更される可能性があるため、最新の情報については最新の実装を参照することをお勧めします。
以上がGo のスライス拡大アルゴリズムはどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。