Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menambahkan Nilai pada Tatasusunan Dalam Peta dalam Go?

Bagaimana untuk Menambahkan Nilai pada Tatasusunan Dalam Peta dalam Go?

DDD
DDDasal
2024-11-03 21:58:02128semak imbas

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
}

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")

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")

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

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)
}

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!

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