슬라이스 슬라이스: 용량 변화 이해
Go에서 슬라이스 작업을 할 때는 용량 개념을 이해하는 것이 중요합니다. 용량은 기본 배열을 재할당하지 않고 슬라이스가 보유할 수 있는 최대 요소 수를 나타냅니다. 슬라이싱은 기본 데이터를 복사하지 않지만 용량에 영향을 줄 수 있습니다.
s = s[2:] 용량을 줄이는 이유는 무엇입니까?
슬라이싱할 때 슬라이스를 사용하면 원래 기본 배열의 일부를 가리키는 새 슬라이스 헤더를 생성할 수 있습니다. 새 슬라이스의 용량은 참조하는 배열의 세그먼트에 따라 결정됩니다.
주어진 코드에서 s = s[:4]는 배열의 처음 4개 요소를 참조하는 슬라이스를 생성합니다. 슬라이스가 여전히 동일한 기본 배열을 가리키므로 용량은 6으로 변경되지 않습니다.
그러나 s = s[:0]의 결과는 용량이 6인 길이가 0인 슬라이스가 됩니다. 이제 배열의 시작 부분을 가리키므로 확장을 위한 충분한 공간이 있습니다.
s = s[2:]를 실행하면 슬라이스의 처음 두 요소가 삭제됩니다. 그러면 포인터가 새 슬라이스로 변경되어 기본 배열 아래를 가리키게 됩니다. 결과적으로, 슬라이스 이후 배열에 사용 가능한 요소가 4개만 남아 있기 때문에 용량이 4로 줄어듭니다.
절단 요소 복구
요소가 슬라이스에서 삭제된 경우 기본 배열을 수정하고 있으므로 동일한 변수를 사용하여 복구할 수 없습니다. 이러한 요소를 보존해야 하는 경우 원본 슬라이스를 참조하는 새 슬라이스를 생성할 수 있습니다.
슬라이스의 메모리 표현
슬라이스 용량을 더 잘 이해하려면 슬라이스는 메모리에 표시됩니다.
위 내용은 Go 슬라이스를 슬라이싱하면 용량이 감소하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!