Rumah >pembangunan bahagian belakang >Golang >Mengapa slices.Delete() dalam golang menyalin elemen seterusnya?

Mengapa slices.Delete() dalam golang menyalin elemen seterusnya?

PHPz
PHPzke hadapan
2024-02-14 10:00:091275semak imbas

Mengapa slices.Delete() dalam golang menyalin elemen seterusnya?

Editor PHP Zimo akan membincangkan soalan tentang kepingan.Fungsi Padam() dalam Golang dalam artikel ini: Mengapa ia menyalin elemen seterusnya? Slices dalam Golang ialah struktur data yang berkuasa, tetapi fungsi slices.Delete() mempamerkan beberapa gelagat pelik apabila memadamkan elemen. Kami akan menganalisis fenomena ini dan memberikan penjelasan dan punca yang mungkin. Dengan mendalami isu ini, kita boleh lebih memahami kerja dalaman dan idea reka bentuk penghirisan di Golang. Selepas membaca artikel ini, anda akan lebih biasa dengan operasi penghirisan Golang, dengan itu meningkatkan kecekapan pengaturcaraan dan kualiti kod.

Kandungan soalan

Kod contoh:

func main() {
    bar := []string{"Monday", "Tuesday", "Wednesday"}
    slices.Delete(bar, 0, 1) // I want to delete 'Monday'
    fmt.Println(bar)         // prints [Tuesday Wednesday Wednesday]
}

Saya tidak faham mengapa saya menerima "Rabu". Saya menjangkakan kepingan dua elemen.

Penyelesaian

slices.delete Kembalikan kepingan yang diubah suai. Anda harus menggunakannya sebagai:

bar=slices.Delete(bar, 0, 1)

Ini kerana operasi pemadaman menggerakkan elemen dalam kepingan dan kemudian mengembalikan kepingan yang lebih pendek, tetapi kepingan asal bar kekal tidak berubah.

Atas ialah kandungan terperinci Mengapa slices.Delete() dalam golang menyalin elemen seterusnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam