Cara Mengeluarkan Elemen daripada Slice dalam Struct
Mengalih keluar elemen daripada hirisan dalam struct memerlukan menangani beberapa pertimbangan utama.
Isu: Kekal Panjang Potongan Tidak berubah
Dalam coretan kod yang disediakan, kaedah removeFriend bertujuan untuk mengalih keluar elemen daripada kepingan rakan. Walau bagaimanapun, elemen terakhir hirisan diduplikasi dan bukannya hirisan menjadi lebih pendek. Ini berlaku kerana kaedah menggunakan penerima nilai, mengubah suai salinan struktur dan bukannya nilai asal.
Penyelesaian: Gunakan Penerima Penunjuk
Untuk memastikan bahawa perubahan dibuat dalam kaedah mempengaruhi struktur asal, penerima penunjuk harus digunakan. Ini membolehkan kaedah mengubah suai contoh struct sebenar. Sintaks untuk penerima penuding dalam Go ialah func (penerima *struct_name).
Contoh:
type Guest struct { id int name string surname string friends []int } func (g *Guest) removeFriend(id int) { for i, other := range g.friends { if other == id { g.friends = append(g.friends[:i], g.friends[i+1:]...) break } } }
Penjelasan:
Dengan menggunakan penerima penunjuk (*Tetamu), kaedah removeFriend kini mengubah suai rakan kepingan struct Tetamu asal.
Penamaan Penerima Idiomatik
Adalah penting untuk ambil perhatian bahawa nama penerima seperti diri dan ini tidak biasa digunakan dalam Go. Sebaliknya, nama yang lebih khusus seperti g atau tetamu lebih disukai untuk menyampaikan maksud kaedah tersebut.
Atas ialah kandungan terperinci Bagaimana untuk Mengubah Suai Slice Dalam Struct in Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!