Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Memadamkan Elemen daripada Slice yang Disimpan Dalam Antara Muka Go?

Bagaimana untuk Memadamkan Elemen daripada Slice yang Disimpan Dalam Antara Muka Go?

Susan Sarandon
Lepaskan: 2024-11-16 07:49:03
asal
646 orang telah melayarinya

How to Delete Elements from a Slice Stored Within a Go Interface?

Memadamkan Elemen daripada Slice Jenis-Tegas Antara Muka

Apabila memanipulasi nilai kepingan yang dibalut dalam antara muka dalam Go, mengalih keluar elemen terus dari hirisan tidak mungkin. Operasi ini mengakibatkan ralat "tidak boleh menetapkan nilai" kerana penegasan jenis mencipta salinan nilai yang disimpan dalam antara muka.

Menetapkan nilai kepada antara muka yang ditegaskan jenis tidak mengubah suai nilai asal yang disimpan dalam antara muka. Sebaliknya, ia hanya mengubah salinan yang diperoleh daripada penegasan jenis. Untuk memintas pengehadan ini, pertimbangkan untuk menyimpan penuding hirisan dalam antara muka (*[]antara muka{}).

Jenis penuding membenarkan perubahan pada nilai yang ditunjuk dan bukannya penuding itu sendiri. Ini ditunjukkan di bawah:

s := []interface{}{0, "one", "two", 3, 4}

var value interface{} = &s

// Perform removal by accessing the pointed slice
sp := value.(*[]interface{})

i := 2
*sp = append((*sp)[:i], (*sp)[i+1:]...)

fmt.Println(value)
Salin selepas log masuk

Output:

&[0 one 3 4]
Salin selepas log masuk

Dengan menaip-menegaskan antara muka pada penuding hirisan ([]antara muka{}) dan menggunakan pengendali arahan (), kita boleh mengubah suai nilai hirisan runcing secara langsung.

Atas ialah kandungan terperinci Bagaimana untuk Memadamkan Elemen daripada Slice yang Disimpan Dalam Antara Muka 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