追加でのスライス拡張を理解する
Go では、スライスは動的にサイズ設定される配列です。要素をスライスに追加する場合、新しいデータを収容するために要素を拡大する必要がある場合があります。この記事では、スライスの拡大に使用されるアルゴリズムを検討し、その容量が常に 2 倍になるかどうかという問題に対処します。
拡大アルゴリズム
スライス拡大アルゴリズムの実装が利用可能です。 Go ソースコード内。 2016 年 10 月 26 日にコミットされたコードによると、ルールは次のとおりです。
容量の倍増
アルゴリズムに基づいて、スライスの容量は常に 2 倍になるとは限りません。拡大すると。現在の長さが 1024 未満で、新しい長さが現在の長さの 2 倍を超えない場合にのみ、容量が 2 倍になります。それ以外の場合、容量は比例して 25% 増加します。
結論
Go のスライス拡大アルゴリズムは、特定のルール セットに従います。スライスのサイズと追加される要素の数に基づいて、スライスの容量を調整します。特定のシナリオでは容量が 2 倍になることがありますが、常にそうとは限りません。
以上がGo スライスの拡張では常に容量が 2 倍になりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。