Home >Backend Development >Golang >What does golang cap mean?
cap is mainly to allow slice to provide variable length.
Just imagine, if there is no cap, there is only len. (Recommended learning: go)
The length of sliceA is 10, len=10, and it has been filled with elements; now the eleventh element needs to be inserted.
How to do it
The length of sliceA is extended to 20, len=20. At this time, there are 11 useful elements and 9 vacancies.
The only interfaces sliceA exposes to the outside world are ptr and len=20. At this time, if you need to insert another element.
Should sliceA be extended or can it be inserted directly on the original basis? At the same time, from which index should it be inserted?
These problems can be solved with the combination of len and cap.
cap() can be used to check the capacity of an array or slice
In an array, the length is fixed and immutable, so the difference between len(arr) and cap(arr) The output is always the same
In slice, len(sli) indicates how many visible elements there are (that is, the number of elements seen when printing the element directly), while cap(sli) indicates how many elements there are A , for example:
arr := []int{2, 3, 5, 7, 11, 13} sli := arr[1:4] fmt.Println(sli) fmt.Println(len(sli)) fmt.Println(cap(sli))
The cap() function returns the space size allocated by the array slice.
package main import "fmt" func main() { mySlice := make([]int, 5, 10) fmt.Println("len(mySlice):", len(mySlice)) fmt.Println("cap(mySlice):", cap(mySlice)) }
The output of this program is:
len(mySlice): 5 cap(mySlice): 10
The above is the detailed content of What does golang cap mean?. For more information, please follow other related articles on the PHP Chinese website!