Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Mengubah Suai Medan Struktur dalam Nilai Peta dalam 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:
Dapatkan salinan sementara struct nilai peta. Contohnya:
tmp := snapshots["test"].Users
Buat pengubahsuaian pada salinan sementara ini.
tmp = append(tmp, user)
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!