Bagaimana untuk Mengeluarkan Rentetan daripada Slice dalam Go?

Barbara Streisand
Lepaskan: 2024-11-02 10:20:03
asal
566 orang telah melayarinya

How to Remove a String from a Slice in Go?

Mengalih keluar Rentetan daripada Slice dalam Go

Dalam Go, bekerja dengan kepingan ialah tugas biasa. Keratan ialah struktur data yang menyediakan antara muka seperti tatasusunan dinamik; bagaimanapun, kepingan adalah lebih cekap daripada tatasusunan kerana ia tidak mempunyai panjang tetap. Untuk mengalih keluar elemen daripada hirisan, kita perlu mencarinya dahulu dan kemudian menggunakan operasi hirisan untuk mengubah suai hirisan.

Untuk mencari elemen dalam hirisan, kita boleh menggunakan gelung dan membandingkan setiap elemen dengan satu kita nak keluarkan. Setelah ditemui, kami boleh menggunakan salah satu daripada beberapa teknik hirisan untuk mengalih keluarnya, seperti:

a = append(a[:i], a[i+1:]...)
Salin selepas log masuk

atau:

a = a[:i+copy(a[i:], a[i+1:])]
Salin selepas log masuk

Berikut ialah contoh lengkap (tersedia di 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>
Salin selepas log masuk

Kami juga boleh mencipta fungsi untuk merangkum operasi ini:

<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>
Salin selepas log masuk

Dengan memahami teknik ini, kami boleh memanipulasi kepingan dalam Go dengan cekap, menambah atau mengalih keluar elemen seperti yang diperlukan dalam program.

Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Rentetan daripada Slice dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!