分配給Map 中的結構字段
嘗試修改以下結構體字段時出現錯誤“無法分配給映射中的結構字段”儲存在映射中的結構。這個限制源自於 Go 中映射鍵和值的不變性。
在提供的範例中, snapshots := make(map[string] Snapshot, 1) 建立一個鍵為 string 類型、值為 string 類型的映射快照,其中快照是一個結構快照。若要修改快照值中的 Users 切片,您必須遵循正確的步驟。
以下方法可確保正確修改 Users 切片:
func main() { snapshots := make(map[string]Snapshot, 1) snapshots["test"] = Snapshot{ Key: "testVal", Users: make([]Users, 0), } // Get a copy of the 'Users' slice users := snapshots["test"].Users // Append user to the copy users = append(users, user) // Reassign the map entry snapshots["test"].Users = users }
透過取得 ' 的副本使用者的切片,您可以修改,然後將修改後的副本重新指派給地圖條目。這種方法堅持了地圖的不變性。
以上是為什麼我無法指派給 Go Map 中的結構體欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!