"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Go Slice의 시작 부분에서 요소를 떨어 뜨리는 것은 용량에 어떤 영향을 미칩니 까?

Go Slice의 시작 부분에서 요소를 떨어 뜨리는 것은 용량에 어떤 영향을 미칩니 까?

2025-02-06에 게시되었습니다
검색:886

How Does Dropping Elements from the Beginning of a Go Slice Affect Its Capacity?

GO SLICE 구조

GO 슬라이스는 구조로 구현됩니다. 세 가지 필드로 구성 :

slice struct {유형. 배열 불안한. 포인터 렌 int 캡 int }

배열 : 슬라이스를 백업하는 기본 배열에 대한 포인터. 보유 할 수있는 요소의 수를 나타냅니다.

type slice struct {
    array unsafe.Pointer
    len   int
    cap   int
}
  • 첫 번째 n 항목을 떨어 뜨립니다
  • 를 사용하여 슬라이스는 길이가 짧은 새 슬라이스를 만들뿐만 아니라 새로운 기본 배열을 할당합니다. 새로운 슬라이스의 용량은 감소 된 요소 수를 수용하도록 조정됩니다. 기본() { s : = [] int {2, 3, 5, 7, 11, 13} Printslice (S) // 마지막 두 값을 떨어 뜨립니다 S = S [: Len (S) -2] Printslice (S) // 처음 두 값을 떨어 뜨립니다 s = s [2 :] Printslice (S) }
  • 출력은 슬라이스를 조작 할 때 길이, 용량 및 기본 배열 포인터의 변화를 보여줍니다 :

ptr = 0x450000 len = 6 Cap = 6 [2 3 5 7 11 13 ]] PTR = 0x450000 LEN = 4 CAP = 6 [2 3 5 7] ptr = 0x450008 len = 2 cap = 4 [5 7]

결론

Go 슬라이스의 내부 구조를 이해하는 것은 효과적으로 조작하는 데 중요합니다. 마지막 N 항목을 떨어 뜨리는 것이 첫 번째 N 항목을 떨어 뜨리는 것과는 다른 용량에 영향을 미친다는 것을 인식함으로써 개발자는 코드를 최적화하고 슬라이스 크기 조정과 관련된 잠재적 성능 문제를 피할 수 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3