Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengubah Suai Medan Struktur dalam Nilai Peta dalam Go?

Bagaimana untuk Mengubah Suai Medan Struktur dalam Nilai Peta dalam Go?

DDD
DDDasal
2024-11-13 04:51:02423semak imbas

How to Modify Struct Fields within Map Values in Go?

Menetapkan kepada Medan Struktur dalam Nilai Peta

Apabila berurusan dengan peta dalam Go, seseorang mungkin menghadapi masalah dengan menetapkan medan struktur dalam nilai peta . Ini berlaku apabila seseorang cuba mengubah suai terus medan struct nilai peta, mengakibatkan ralat: "tidak boleh menetapkan medan struct dalam peta."

Untuk menyelesaikan isu ini dan berjaya mengubah suai medan struct dalam nilai peta, prinsip penting untuk difahami ialah semantik penugasan nilai dalam Go. Apabila kunci peta diakses, nilai berkaitannya ialah salinan nilai asal. Oleh itu, pengubahsuaian terus kepada salinan ini tidak akan ditunjukkan dalam nilai asal dalam peta.

Untuk mengubah suai medan struct dalam nilai peta dengan berkesan, penyelesaian berikut boleh digunakan:

  1. Dapatkan salinan sementara struct nilai peta. Contohnya:

    tmp := snapshots["test"].Users
  2. Buat pengubahsuaian pada salinan sementara ini.

    tmp = append(tmp, user)
  3. Tugaskan semula salinan sementara kepada struct nilai peta .

    snapshots["test"].Users = tmp

Tambahan pula, ia berbaloi mengambil perhatian bahawa mengisytiharkan peta dengan jenis penuding (cth., syot kilat := make(map[rentetan]*Snapshot, 1)) tidak mengurangkan isu ini.

Atas ialah kandungan terperinci Bagaimana untuk Mengubah Suai Medan Struktur dalam Nilai 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