Bagaimana untuk Menambahkan Nilai pada Tatasusunan Dalam Peta dalam Go?

DDD
Lepaskan: 2024-11-03 21:58:02
asal
126 orang telah melayarinya

How to Append Values to Arrays Within Maps in Go?

Merungkai Tatasusunan Ditambah dalam Peta dalam Go

Dalam Go, peta ialah alatan berkuasa untuk mengatur data. Walau bagaimanapun, ia boleh menjadi rumit apabila cuba menambahkan nilai pada tatasusunan dalam peta tersebut. Pertimbangkan senario hipotetikal:

var MyMap map[string]Example

type Example struct {
    Id []int
    Name []string
}
Salin selepas log masuk

Teka-teki Didedahkan

Coretan kod cuba menambahkan integer dan rentetan pada tatasusunan dalam peta yang dipanggil MyMap. Walau bagaimanapun, pelaksanaan mengandungi ralat penting:

MyMap["key1"] = Offerty.AppendOffer(1, "SomeText")
Salin selepas log masuk

Di sini, Tawaran tidak boleh dikenali sebagai objek kerana ia tidak pernah ditakrifkan. Untuk menyelesaikan masalah ini, cipta contoh struct Contoh sebelum mengaitkannya dengan peta, seperti yang dilihat di bawah:

obj := &Example{[]int{}, []string{}}
obj.AppendOffer(1, "SomeText")
Salin selepas log masuk

Rujukan, Bukan Salin

Selain itu, coretan kod hanya mencipta salinan struct Contoh, bukan rujukan kepadanya. Untuk mengekalkan penunjuk kepada struct dalam peta:

MyMap = make(map[string]*Example)
MyMap["key1"] = obj
Salin selepas log masuk

Penyelesaian dalam Penglihatan

Dengan pengubahsuaian ini, kod yang disemak berjaya menambahkan nilai pada tatasusunan dalam peta :

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)
}
Salin selepas log masuk

Penyelesaian ini mengekalkan struct Contoh asal dalam peta, membolehkan kemas kini dan pengubahsuaian pada tatasusunannya dari skop luar.

Atas ialah kandungan terperinci Bagaimana untuk Menambahkan Nilai pada Tatasusunan Dalam Peta dalam 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!