>백엔드 개발 >Golang >Go 슬라이스의 용량과 길이의 차이점은 무엇입니까?

Go 슬라이스의 용량과 길이의 차이점은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-13 16:40:13510검색

What's the Difference Between Capacity and Length in Go Slices?

슬라이스의 용량과 길이의 차이 이해

Go의 슬라이스는 유연하고 효율적인 방법을 제공하는 데이터 구조입니다. 값 컬렉션을 처리합니다. 이는 기본 배열에서 작동하며 용량과 길이라는 두 가지 주요 속성을 제공합니다.

용량

슬라이스의 용량은 기본 배열이 포함하는 총 요소 수를 나타냅니다. 배열을 보유할 수 있습니다. make() 함수를 사용하여 슬라이스를 생성할 때 세 번째 인수로 용량을 지정할 수 있습니다. 예를 들어:

x := make([]int, 0, 5)

이 경우 슬라이스 x의 길이는 0이지만 용량은 5입니다.

Length

슬라이스의 길이는 현재 포함된 요소의 수를 나타냅니다. 위의 예와 같이 길이가 0인 슬라이스를 초기화하면 길이도 0이 됩니다.

용량과 길이의 차이

용량은 최대 개수를 나타냅니다. 슬라이스가 수용할 수 있는 요소의 길이는 저장되는 null이 아닌 값의 실제 개수를 나타냅니다. 슬라이스의 길이는 용량보다 클 수 없지만 모든 요소가 채워지지 않으면 용량보다 작을 수 있습니다.

더 나은 이해하려면 다음 예를 고려하십시오.

s := make([]int, 0, 3)
for i := 0; i < 5; i++ {
    s = append(s, i)
}

이 코드는 용량이 3인 슬라이스를 생성한 다음 용량이 3에 도달할 때까지 여기에 값을 추가합니다. 용량. 용량이 초과되면 슬라이스 크기가 자동으로 조정되고 용량이 늘어납니다. 이 코드의 출력은 다음과 같습니다.

cap 3, len 1
cap 3, len 2
cap 3, len 3
cap 6, len 4
cap 6, len 5

이 출력에서 ​​용량은 3에서 시작하고 슬라이스가 해당 용량에 도달하면 두 배가 됩니다. 그러나 길이는 추가 작업을 수행할 때마다 증가하며 실제 값의 수를 나타냅니다.

위 내용은 Go 슬라이스의 용량과 길이의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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