cap dient hauptsächlich dazu, dem Slice eine variable Länge zu ermöglichen.
Stellen Sie sich vor, es gäbe keine Obergrenze, sondern nur Len. (Empfohlenes Lernen: go)
sliceA hat eine Länge von 10, len=10 und wurde mit Elementen gefüllt; jetzt muss das elfte Element eingefügt werden.
So geht's
Die Länge von SliceA wird auf 20 verlängert, len=20. Zu diesem Zeitpunkt gibt es 11 nützliche Elemente und 9 freie Stellen.
Die einzigen Schnittstellen, die SliceA der Außenwelt zugänglich macht, sind ptr und len=20. Zu diesem Zeitpunkt müssen Sie ein weiteres Element einfügen.
Soll SliceA erweitert werden oder kann es direkt auf der Originalbasis eingefügt werden? Ab welchem Index soll es gleichzeitig eingefügt werden?
Diese Probleme können mit der Kombination von Len und Cap gelöst werden.
cap() kann verwendet werden, um die Kapazität eines Arrays oder Slice zu überprüfen
In einem Array ist die Länge fest und unveränderlich, also len(arr) und cap(arr) Die Ausgabe ist immer die gleiche
In Slice gibt len(sli) die Anzahl der sichtbaren Elemente an (d. h. die Anzahl der Elemente, die durch direktes Drucken des Elements gesehen werden), während cap (sli) gibt die Anzahl aller Elemente an, zum Beispiel:
arr := []int{2, 3, 5, 7, 11, 13} sli := arr[1:4] fmt.Println(sli) fmt.Println(len(sli)) fmt.Println(cap(sli))
cap()-Funktion gibt die vom Array-Slice zugewiesene Speicherplatzgröße zurück.
package main import "fmt" func main() { mySlice := make([]int, 5, 10) fmt.Println("len(mySlice):", len(mySlice)) fmt.Println("cap(mySlice):", cap(mySlice)) }
Das Ausgabeergebnis dieses Programms ist:
len(mySlice): 5 cap(mySlice): 10
Das obige ist der detaillierte Inhalt vonWas bedeutet Golang-Kappe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!