>  기사  >  백엔드 개발  >  골랭 배열 삭제

골랭 배열 삭제

WBOY
WBOY원래의
2023-05-19 09:01:361188검색

Golang은 강력한 유형의 언어이며 배열의 길이가 고정되어 있습니다. 즉, 선언 시 배열의 길이를 지정해야 하며 이후 사용 시 배열의 길이를 변경할 수 없습니다. 이는 일부 시나리오에서는 매우 불편할 수 있습니다. 예를 들어 배열에서 요소를 삭제해야 하지만 배열의 길이는 변경되지 않도록 해야 합니다.

이 경우 몇 가지 기술을 사용하여 배열의 요소 삭제 작업을 구현할 수 있습니다. 이 기사에서는 두 가지 일반적인 Golang 배열 삭제 기술을 소개합니다.

1. 슬라이스 차단 작업을 사용하여 요소 삭제

슬라이스는 모든 유형의 요소를 포함할 수 있고 동적으로 늘리거나 줄일 수 있는 참조 유형입니다. 슬라이싱의 차단 작업을 통해 Golang 배열의 요소를 쉽게 삭제할 수 있습니다. 구체적인 작업 단계는 다음과 같습니다.

  1. Golang 배열 정의
arr := [5]int{1, 2, 3, 4, 5}
  1. 삭제할 요소의 첨자 정의
index := 2
  1. 슬라이싱 차단 작업을 사용하여 지정된 인덱스의 요소를 삭제합니다.
arr = append(arr[:index], arr[index+1:]...)

이 예에서는 먼저 5개의 요소가 포함된 Golang 배열 arr을 정의합니다. 그런 다음 삭제할 요소의 아래 첨자 인덱스를 정의했습니다. 여기서는 삭제할 세 번째 요소를 선택했습니다. 다음으로 슬라이싱 차단 작업을 사용하여 원래 배열을 두 개의 새로운 배열로 가로채서 새 배열 arr로 병합합니다. 이때 세 번째 요소가 삭제되었습니다.

전체 코드는 다음과 같습니다.

package main

import "fmt"

func main() {
    arr := [5]int{1, 2, 3, 4, 5}
    index := 2
    arr = append(arr[:index], arr[index+1:]...)
    fmt.Println(arr)
}

실행 결과는

[1 2 4 5]

세 번째 요소가 성공적으로 삭제된 것을 확인할 수 있습니다.

2. 슬라이스 반전 연산을 사용하여 요소 삭제

슬라이스 차단 연산을 사용하는 것 외에도 슬라이스 반전 연산을 통해 Golang 배열의 요소를 삭제할 수도 있습니다. 구체적인 단계는 다음과 같습니다.

  1. Golang 배열 정의
arr := [5]int{1, 2, 3, 4, 5}
  1. 삭제할 요소의 첨자 정의
index := 2
  1. 배열 반전
for i, j := 0, len(arr)-1; i < j; i, j = i+1, j-1 {
    arr[i], arr[j] = arr[j], arr[i]
}
  1. 슬라이스 차단 작업을 사용하여 지정된 항목을 삭제합니다. subscript Element
arr = arr[:len(arr)-1]
  1. 배열을 다시 뒤집으세요
for i, j := 0, len(arr)-1; i < j; i, j = i+1, j-1 {
    arr[i], arr[j] = arr[j], arr[i]
}

여기서 주목해야 할 점은 3단계와 5단계에서 두 변수의 값을 한 번에 교환할 수 있는 Golang의 다중 할당문을 사용했다는 점입니다. . arr[i]와 arr[j]를 직접 사용하여 값을 교환하면 코드가 더 복잡해집니다.

전체 코드는 다음과 같습니다.

package main

import "fmt"

func main() {
    arr := [5]int{1, 2, 3, 4, 5}
    index := 2
    for i, j := 0, len(arr)-1; i < j; i, j = i+1, j-1 {
        arr[i], arr[j] = arr[j], arr[i]
    }
    arr = arr[:len(arr)-1]
    for i, j := 0, len(arr)-1; i < j; i, j = i+1, j-1 {
        arr[i], arr[j] = arr[j], arr[i]
    }
    fmt.Println(arr)
}

실행 결과는

[1 2 4 5]

세 번째 요소가 성공적으로 삭제된 것을 확인할 수 있습니다.

요약

이 기사를 통해 우리는 Golang 배열이 고정 길이이지만 슬라이스 차단 작업 및 슬라이스 반전 작업과 같은 일부 기술을 사용하여 요소를 삭제할 수 있다는 것을 배웠습니다. 그러나 배열의 길이는 고정되어 있으므로 이러한 작업은 추가 오버헤드를 발생시키므로 프로그램 성능을 보장하기 위해 실제 사용에서는 잦은 삭제 작업을 피해야 합니다.

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

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