질문:
어떻게 인덱스에 값을 삽입할 수 있나요? 다른 요소를 포함하지 않고 Go 슬라이스의 특정 인덱스가 있습니까?
문제 설명:
array1과 array2라는 두 개의 슬라이스가 있고 array1[1]에 array2[2]를 삽입하려고 한다고 가정합니다. array1의 나머지 부분은 그대로 유지하려고 합니다.
배경:
콜론 연산자(:)를 사용하는 초기 기술이지만 후속 요소도 포함됩니다. 이 튜토리얼의 목표는 특정 인덱스에 단일 값을 삽입하는 데 초점을 맞춘 포괄적인 솔루션을 제공하는 것입니다.
해결책:
slices.Insert 패키지 사용(Go 1.21 ):
result := slices.Insert(slice, index, value)
참고: 0 ≤ index ≤ len(slice)
Append 및 사용 과제
a = append(a[:index+1], a[index:]...) a[index] = value
참고: len(a) > 0 && 인덱스 < len(a)
특별한 경우:
len(a) == index인 경우 다음을 수행합니다.
a = append(a, value)
인덱스 0에 삽입하고 int 슬라이스를 처리하는 경우, do:
a = append([]int{value}, a...)
사용자 정의 함수:
func insert(a []int, index int, value int) []int { if len(a) == index { return append(a, value) } a = append(a[:index+1], a[index:]...) a[index] = value return a }
일반 기능:
func insert[T any](a []T, index int, value T) []T { ... return a }
예:
slice1 := []int{1, 3, 4, 5} slice2 := []int{2, 4, 6, 8} slice1 = append(slice1[:2], slice1[1:]...) slice1[1] = slice2[2] fmt.Println(slice1) // [1 6 3 4 5]
위 내용은 다른 요소에 영향을 주지 않고 특정 인덱스의 Go 슬라이스에 값을 삽입하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!