Bagaimanakah anda menambahkan nilai pada tatasusunan dalam peta dalam Go sambil mengekalkan rujukan objek?

Barbara Streisand
Lepaskan: 2024-11-01 21:28:29
asal
912 orang telah melayarinya

How do you append values to arrays within a map in Go while preserving object references?

Menambah Nilai pada Tatasusunan dalam Peta dalam Go

Apabila cuba menambah nilai pada tatasusunan dalam peta, anda mungkin menghadapi kesukaran menetapkan rujukan ke objek Contoh.

Dalam Go, kod berikut cuba menambahkan nilai pada struct Contoh:

<code class="go">var MyMap map[string]Example 

type Example struct {
    Id []int
    Name []string
}

package main


import (
  "fmt"
)


type Example struct {
  Id []int
  Name []string
}

func (data *Example) AppendExample(id int,name string) {
   data.Id = append(data.Id, id)
   data.Name = append(data.Name, name)
}

var MyMap map[string]Example

func main() {
   MyMap = make(map[string]Example)
   MyMap["key1"] = Oferty.AppendExample(1,"SomeText")
   fmt.Println(MyMap)
}</code>
Salin selepas log masuk

Walau bagaimanapun, kod ini tidak betul atas beberapa sebab:

  • Ralat Permulaan: Oferty ialah pembolehubah tidak ditentukan.
  • Penciptaan Contoh: Contoh Contoh mesti dibuat sebelum menambahkannya pada peta.
  • Isu Rujukan Peta: Peta MyMap sepatutnya mengandungi rujukan kepada Contoh contoh, bukan salinan.

Kod diperbetulkan berikut menangani isu ini:

<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 := &amp;Example{[]int{}, []string{}}
    obj.AppendOffer(1, "SomeText")
    MyMap = make(map[string]*Example)
    MyMap["key1"] = obj
    fmt.Println(MyMap)
}</code>
Salin selepas log masuk

Dalam kod yang diperbetulkan ini:

  • Satu contoh Contoh (obj) dibuat sebelum menambahkannya pada peta.
  • Peta MyMap mengandungi rujukan kepada Contoh contoh menggunakan penunjuk (*Contoh).
  • Kaedah AppendOffer digunakan untuk menambahkan nilai pada medan tatasusunan bagi contoh Contoh.

Dengan melaksanakan pembetulan ini, kod ditambah dengan betul nilai pada tatasusunan dalam peta sambil mengekalkan rujukan objek.

Atas ialah kandungan terperinci Bagaimanakah anda menambahkan nilai pada tatasusunan dalam peta dalam Go sambil mengekalkan rujukan objek?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!