>백엔드 개발 >Golang >골랑캡은 무슨 뜻인가요?

골랑캡은 무슨 뜻인가요?

(*-*)浩
(*-*)浩원래의
2019-12-03 09:13:104927검색

골랑캡은 무슨 뜻인가요?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.