> 백엔드 개발 > Golang > Go의 슬라이스에서 문자열을 제거하는 방법은 무엇입니까?

Go의 슬라이스에서 문자열을 제거하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2024-11-02 10:20:03
원래의
689명이 탐색했습니다.

How to Remove a String from a Slice in Go?

Go의 슬라이스에서 문자열 제거

Go에서는 슬라이스 작업이 일반적인 작업입니다. 슬라이스는 동적 배열과 유사한 인터페이스를 제공하는 데이터 구조입니다. 그러나 슬라이스는 고정된 길이가 없기 때문에 배열보다 더 효율적입니다. 슬라이스에서 요소를 제거하려면 먼저 해당 요소를 찾은 다음 슬라이스 작업을 사용하여 슬라이스를 수정해야 합니다.

슬라이스에서 요소를 찾으려면 루프를 사용하고 각 요소를 해당 요소와 비교할 수 있습니다. 우리는 제거하고 싶습니다. 일단 발견되면 다음과 같은 여러 슬라이스 기술 중 하나를 사용하여 제거할 수 있습니다.

a = append(a[:i], a[i+1:]...)
로그인 후 복사

또는:

a = a[:i+copy(a[i:], a[i+1:])]
로그인 후 복사

다음은 전체 예입니다(Go Playground에서 사용 가능).

<code class="go">package main

import "fmt"

func main() {
    s := []string{"one", "two", "three"}

    // Find and remove "two"
    for i, v := range s {
        if v == "two" {
            s = append(s[:i], s[i+1:]...)
            break
        }
    }

    fmt.Println(s) // Prints [one three]
}</code>
로그인 후 복사

이 작업을 캡슐화하는 함수를 만들 수도 있습니다.

<code class="go">package main

import "fmt"

func remove(s []string, r string) []string {
    for i, v := range s {
        if v == r {
            return append(s[:i], s[i+1:]...)
        }
    }
    return s
}

func main() {
    s := []string{"one", "two", "three"}
    s = remove(s, "two")
    fmt.Println(s) // Prints [one three]
}</code>
로그인 후 복사

이러한 기술을 이해하면 Go에서 필요에 따라 요소를 추가하거나 제거하여 Go에서 슬라이스를 효율적으로 조작할 수 있습니다. 프로그램.

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿