>백엔드 개발 >Golang >golang 배열 삭제 요소

golang 배열 삭제 요소

王林
王林원래의
2023-05-15 09:03:37673검색

Golang에서 배열 요소를 삭제하는 것은 상대적으로 번거로운 작업입니다. 배열의 길이는 생성될 때 결정되므로 요소를 쉽게 제거하거나 추가할 수 없습니다. 반면에 슬라이스는 필요에 따라 길이를 동적으로 조정할 수 있으므로 더 나은 선택입니다. 그러나 이미 배열로 작업 중이고 배열에서 일부 요소를 제거해야 하는 경우 이를 수행할 수 있는 몇 가지 방법이 있습니다.

  1. 삭제할 요소를 0 값으로 할당
    가장 간단한 방법입니다. 제거할 요소는 해당 유형의 0 값으로 대체될 수 있습니다. 예를 들어 배열의 요소가 문자열인 경우 삭제하려는 문자열을 빈 문자열로 바꿀 수 있습니다. 배열의 요소가 숫자인 경우 0으로 대체될 수 있습니다.

다음은 이 메소드를 구현하는 샘플 코드입니다:

func deleteElement(arr []int, index int) []int {
arr[index] = 0
return arr
}

  1. append() 사용
    또 다른 방법은 add() 함수를 사용하는 것입니다. 이 방법을 사용하는 경우 새 슬라이스를 만든 다음 유지하려는 요소를 새 슬라이스에 복사해야 합니다. 삭제해야 하는 요소는 복사 프로세스 중에 건너뛸 수 있습니다. 마지막으로 원래 배열을 새 슬라이스로 덮어씁니다. 이 메서드는 배열에 대한 포인터가 아닌 배열에만 사용할 수 있습니다.

다음은 이 메서드를 구현하는 샘플 코드입니다.

func deleteElement(arr []int, index int) []int {
newSlice := make([]int, len(arr)-1)
copy ( newSlice, arr[:index])
copy(newSlice[index:], arr[index+1:])
return newSlice
}

  1. 배열 대신 슬라이스를 사용하세요
    요소를 자주 추가하거나 제거해야 한다면, 슬라이스를 사용하여 배열을 대체하십시오. 슬라이스는 동적으로 늘어나고 길이를 조정할 수 있어 더욱 유연해집니다.

예를 들어 다음 코드는 배열 대신 슬라이스를 사용합니다.

package main

import "fmt"

func main() {
var Slice []int = []int{1, 2, 3, 4 , 5, 6}
fmt.Println(슬라이스) // [1 2 3 4 5 6]
슬라이스 = 추가(슬라이스[:2], 슬라이스[3:]...)
fmt.Println(슬라이스) / / [1 2 4 5 6]
}

여기서 먼저 int 유형의 슬라이스를 선언하고 해당 값을 초기화합니다. 그런 다음, add() 함수를 사용하여 슬라이스에서 요소를 제거합니다.

요약
Golang에서 배열 요소를 삭제하는 것은 번거롭지만, 이 세 가지 방법을 사용하면 쉽게 달성할 수 있습니다. 요소를 자주 추가하거나 제거해야 한다면 슬라이싱을 사용하는 것이 좋습니다. 어떻게 구현하는지 잘 모르겠으면 위의 샘플 코드를 참고하세요.

위 내용은 golang 배열 삭제 요소의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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