cap은 주로 슬라이스가 가변 길이를 제공할 수 있도록 하는 것입니다.
상상해 보세요. 모자가 없으면 렌만 있습니다. (추천 학습: go)
sliceA의 길이는 10, len=10이고 요소로 채워졌습니다. 이제 11번째 요소를 삽입해야 합니다.
방법
sliceA의 길이는 20, len=20으로 확장됩니다. 이때 유용한 요소는 11개이며, 9개의 빈자리가 있습니다.
sliceA가 외부 세계에 노출하는 유일한 인터페이스는 ptr 및 len=20입니다. 이때 다른 요소를 삽입해야 합니다.
sliceA를 확장해야 할까요? 아니면 원본 기반으로 직접 삽입해야 할까요? 동시에 어떤 인덱스에서 삽입해야 할까요?
이러한 문제는 렌과 캡의 조합으로 해결될 수 있습니다.
cap()을 사용하면 배열이나 슬라이스의 용량을 볼 수 있습니다.
배열에서 길이는 고정되어 있고 변경할 수 없습니다. 따라서 len(arr) cap(arr)의 출력은 항상 동일합니다.
슬라이스에서 len(sli)는 표시되는 요소의 수를 나타냅니다. 요소 직접), cap(sli)은 모든 요소에 개수가 있음을 의미합니다. 예:
arr := []int{2, 3, 5, 7, 11, 13} sli := arr[1:4] fmt.Println(sli) fmt.Println(len(sli)) fmt.Println(cap(sli))
cap() 함수는 공간 크기를 반환합니다. 배열 슬라이스에 의해 할당됩니다.
package main import "fmt" func main() { mySlice := make([]int, 5, 10) fmt.Println("len(mySlice):", len(mySlice)) fmt.Println("cap(mySlice):", cap(mySlice)) }
이 프로그램의 출력은 다음과 같습니다.
len(mySlice): 5 cap(mySlice): 10
위 내용은 골랑캡은 무슨 뜻인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!