>백엔드 개발 >Golang >golang 슬라이스 항목 삭제

golang 슬라이스 항목 삭제

PHPz
PHPz원래의
2023-05-10 10:29:36870검색

머리말

Golang에서 슬라이스는 길이를 마음대로 늘리거나 줄일 수 있는 동적 배열로 매우 유연합니다. 슬라이스를 사용할 때 필요에 따라 동적 배열의 항목을 삭제해야 하는 경우가 있습니다. 이번 글에서는 Golang의 내장 함수를 통해 슬라이스 삭제를 구현하는 방법과 새로운 슬라이스를 생성하는 방법을 소개하겠습니다.

1. 내장 함수를 통해 슬라이스 삭제 구현

Golang의 내장 함수 라이브러리에는 슬라이스의 길이를 동적으로 확장하고 끝에 요소를 추가하는 데 사용할 수 있는 "append"라는 함수가 있습니다. 따라서 이 함수를 첨자와 함께 사용하여 슬라이스 삭제를 구현할 수 있습니다. 구체적인 단계는 다음과 같습니다.

  1. 슬라이스 정의

"numbers"라는 정수 슬라이스를 정의한다고 가정합니다.

numbers := []int{1, 2, 3, 4, 5}
  1. 첨자 정의

슬라이스의 특성에 따라 첨자로 삭제할 수 있습니다. 요소 중 하나. 예를 들어, 슬라이스에서 인덱스 2(즉, 숫자 3)를 가진 요소를 삭제하려면 "index"라는 변수를 정의하고 값 2를 할당할 수 있습니다.

index := 2
  1. append 함수를 사용하여 다음을 수행합니다. 요소 삭제

계속 다음으로 추가 기능을 사용하여 인덱스 앞의 슬라이스 요소와 인덱스 뒤의 요소를 연결하여 삭제 작업을 수행할 수 있습니다. 구체적인 코드는 다음과 같습니다.

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

이 코드에서 ":index"는 슬라이스의 시작 위치에서 아래 첨자 index-1(예: 0~1)이 있는 위치까지 가로채는 것을 의미하고, "index+1:"은 첨자부터 절편 인덱스+1의 위치를 ​​슬라이스 끝(즉, 3~4)까지 절취합니다. 세 개의 점 "..."을 사용하여 두 조각을 새 조각으로 연결합니다.

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

package main

import (
    "fmt"
)

func main() {
    // 定义 slice
    numbers := []int{1, 2, 3, 4, 5}
    // 定义下标
    index := 2
    // 使用 append 函数删除元素
    numbers = append(numbers[:index], numbers[index+1:]...)
    fmt.Println(numbers)    // [1 2 4 5]
}

2. 새 슬라이스를 생성하여 슬라이스 삭제를 구현합니다.

append 함수와 첨자를 사용하여 슬라이스 삭제를 수행하는 것 외에도 빈 슬라이스를 생성하고 요소를 추가할 수도 있습니다. 그 중에서 새로운 슬라이스가 얻어집니다. 구체적인 단계는 다음과 같습니다.

  1. 슬라이스 정의

"숫자"라는 정수 슬라이스도 정의한다고 가정합니다.

numbers := []int{1, 2, 3, 4, 5}
  1. 아래 첨자 정의

우리는 여전히 첨자를 사용하여 삭제될 요소를 지정합니다. . 인덱스 2(즉, 숫자 3)가 있는 요소를 삭제하고 싶다고 가정하면 인덱스 값을 "index" 변수에 할당할 수 있습니다.

index := 2
  1. 빈 슬라이스 만들기

그런 다음 다음을 만들 수 있습니다. make 함수를 통해 새로운 것 길이가 0인 빈 슬라이스:

newNumbers := make([]int, 0)
  1. 유지해야 할 요소를 추가하세요

다음으로 for 루프를 통해 유지해야 하는 요소를 새 슬라이스에 추가할 수 있습니다.

for i := 0; i < len(numbers); i++ {
    if i != index {
        newNumbers = append(newNumbers, numbers[i])
    }
}

여기서 "if i != index"는 인덱스가 있는 요소 이외의 요소만 새 슬라이스에 추가하는 것을 의미합니다.

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

package main

import (
    "fmt"
)

func main() {
    // 定义 slice
    numbers := []int{1, 2, 3, 4, 5}
    // 定义下标
    index := 2
    // 新建一个空 slice
    newNumbers := make([]int, 0)
    // 添加需要保留的元素
    for i := 0; i < len(numbers); i++ {
        if i != index {
            newNumbers = append(newNumbers, numbers[i])
        }
    }
    fmt.Println(newNumbers)    // [1 2 4 5]
}

Summary

Golang에서는 내장 함수 추가를 통해 슬라이스 삭제 작업을 구현하고 새 슬라이스를 생성할 수 있으며 이는 단순성, 실용성, 유연성 및 변경의 장점이 있습니다. . 이 기사의 소개를 통해 독자들은 슬라이스 삭제 작업을 빠르고 효과적으로 구현하는 방법을 이미 이해했으며, 이는 자신의 개발 작업에 도움이 될 것입니다.

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

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