Menambahkan Nilai pada Tatasusunan Dalam Peta dalam Go
Apabila bekerja dengan peta dalam Go, memanipulasi tatasusunan dalam peta tersebut boleh menjadi mencabar. Artikel ini menyediakan penyelesaian kepada isu penambahan nilai pada tatasusunan yang disimpan di dalam peta.
Untuk memahami masalah, pertimbangkan kod berikut:
<code class="go">type Example struct { Id []int Name []string } var MyMap map[string]Example</code>
Di sini, MyMap ialah peta yang memetakan rentetan kepada contoh struct Contoh. Struktur Contoh mengandungi Id dan Nama tatasusunan. Matlamatnya adalah untuk menambahkan nilai pada tatasusunan ini.
Percubaan awal untuk melakukan ini selalunya melibatkan kaedah memanggil pada struct Contoh dan menghantar penerima penuding untuk mengakses dan mengubah suai tatasusunan. Walau bagaimanapun, memberikan terus hasil Oferty.AppendExample(1, "SomeTeks") kepada MyMap["key1"] tidak akan berfungsi kerana peta menyimpan salinan Contoh struct, bukan struct itu sendiri.
The penyelesaian terletak pada mengubah suai kod seperti berikut:
<code class="go">package main import "fmt" type Example struct { Id []int Name []string } func (data *Example) AppendOffer(id int, name string) { data.Id = append(data.Id, id) data.Name = append(data.Name, name) } var MyMap map[string]*Example func main() { obj := &Example{[]int{}, []string{}} obj.AppendOffer(1, "SomeText") MyMap = make(map[string]*Example) MyMap["key1"] = obj fmt.Println(MyMap) }</code>
Dengan mencipta contoh struct Contoh dan menyimpan rujukan kepadanya dalam peta (menggunakan jenis penunjuk), kita boleh mengubah suai tatasusunan secara langsung. Kaedah AppendOffer beroperasi pada penuding kepada struct Contoh, membolehkan kami menambahkan nilai pada tatasusunan.
Penyelesaian ini menambahkan nilai secara berkesan pada tatasusunan dalam struct Contoh, yang disimpan dalam MyMap. Ia menyediakan pendekatan yang jelas dan ringkas untuk mengurus tatasusunan dalam peta dalam Go.
Atas ialah kandungan terperinci Bagaimana untuk Menambahkan Nilai pada Tatasusunan Di Dalam Peta dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!