Rumah  >  Artikel  >  pembangunan bahagian belakang  >  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
Susan Sarandonasal
2024-11-16 07:49:03569semak imbas

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)

Output:

&[0 one 3 4]

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!

Kenyataan:
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