Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah anda menambahkan nilai pada tatasusunan dalam peta dalam Go sambil mengekalkan rujukan objek?

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

Barbara Streisand
Barbara Streisandasal
2024-11-01 21:28:29902semak imbas

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>

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>

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!

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