Beim Anhängen von Elementen an ein Slice muss möglicherweise seine Kapazität erweitert werden. Der für diese Vergrößerung verwendete spezifische Algorithmus ist in den Go-Spezifikationen nicht explizit definiert.
Der Code, der für die Größenänderung von Slices im Anhängevorgang verantwortlich ist, kann im Go-Quellcode-Repository gefunden werden:
https://github.com/golang/go/blob/master/src/runtime/slice.go
Ab 2014–2020 gelten folgende Regeln:
Nein, die Kapazität wird nicht immer verdoppelt, wenn ein Slice vergrößert wird.
Die oben beschriebenen Strategien können je nach ursprünglicher Slice-Länge zu unterschiedlichen Kapazitätssteigerungen führen. Darüber hinaus können sich diese Heuristiken in zukünftigen Go-Versionen ändern. Es wird daher empfohlen, die neueste Implementierung zu konsultieren, um die aktuellsten Informationen zu erhalten.
Das obige ist der detaillierte Inhalt vonWie funktioniert der Slice-Vergrößerungsalgorithmus von Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!