>  기사  >  백엔드 개발  >  특정 인덱스의 Go 슬라이스에 값을 삽입하는 방법은 무엇입니까?

특정 인덱스의 Go 슬라이스에 값을 삽입하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-19 01:36:02452검색

How to Insert a Value into a Go Slice at a Specific Index?

주어진 인덱스의 슬라이스에 값 삽입

Go에서는 특정 인덱스의 슬라이스에 값을 삽입할 수 있습니다. 다양한 방법 사용:

slice.Insert 함수 사용(Go 1.21 이상):

result = slices.Insert(slice, index, value)

참고: 인덱스는 0과 len(slice) 사이여야 합니다. .

추가 및 할당 연산자 사용:

a = append(a[:index+1], a[index:]...)
a[index] = value

삽입 함수 사용:

func insert(a []int, index int, value int) []int {
    if index == len(a) { // Nil or empty slice, or after last element
        return append(a, value)
    }
    a = append(a[:index+1], a[index:]...) // Step 1+2
    a[index] = value                      // Step 3
    return a
}

벤치마크:

제공된 벤치마크 결과는 Slices.Insert 함수가 작은 슬라이스 크기에 가장 효율적이라는 것을 나타냅니다. 더 큰 슬라이스의 경우 추가 및 삽입 기능의 성능이 더 좋습니다.

범위를 벗어난 인덱스 처리:

  • 슬라이스.인덱스가 범위를 벗어난 경우 패닉을 삽입합니다. .
  • 인덱스가 len(slice)보다 큰 경우 추가 및 삽입 기능은 자동으로 슬라이스 크기를 조정합니다.

일반(Go 1.18 이상):

func insert[T any](a []T, index int, value T) []T {
    // Similar to the non-generic function
}

위 내용은 특정 인덱스의 Go 슬라이스에 값을 삽입하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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