在GO中創建一個關聯映射:如何深入複製和清除原始
引用具有對AMAP的引用,並且當您修改AMAP(在這種情況下,通過刪除項目)實際上正在修改Asupermap指向的基礎數據。 深度複製maps
您可以通過手動創建一個for循環來實現此目標,該循環在原始映射上迭代並將每個鍵值添加到新的映射中: newmap [k] = v }通過此操作,您創建了一個與原始映射相同的數據的新映射,但是兩個映射是帶有數據副本的獨立對象。
的圖副本很高,很少有一個深地圖,因此可以清除原始地圖。為此,您可以從容器/列表軟件包中使用重置函數: astruct) asupermap:= make(map [string] map [string] astruct) 對於x:=範圍{ amap [x] = adata asupermap [y] = amap 刪除(amap,x) } //深層複製amap in newmap newmap:= make(map [string] astruct) 對於k,v:= range amap { newmap [k] = v } //清除原始amap 集裝箱/列表。 RESET(AMAP) //保存新地圖 saveasupermap(newmap) }
通過遵循以下步驟,您可以在GO中成功創建一個關聯地圖,執行地圖的深層副本以保留原始數據,並清除原始地圖以在下一個循環迭代中接受新值。免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3