首頁 > 後端開發 > Golang > 主體

如何在 Go 中修改不可尋址的映射值?

DDD
發布: 2024-11-24 01:17:14
原創
282 人瀏覽過

How to Modify Non-Addressable Map Values in Go?

在Go 中修改Map 值:解決「無法指派給對」錯誤

在Go 中,當遇到錯誤訊息「can不分配給它”,當嘗試修改映射中的一對時,理解以下概念很重要可尋址性。

Go 中的映射值是不可尋址的,這意味著不能直接使用點 (.) 運算子為它們賦值。這是一個經過深思熟慮的設計選擇,旨在讓映射實現能夠根據需要靈活地在記憶體中移動值。

要修改不可尋址的映射值(例如一對),您有兩個選項:

  1. 使用指標作為映射值:透過將映射值定義為指向該對的指針,您可以透過以下方式修改該值:使用間接運算子(*) 取消引用指針。
dict := make(map[string]*pair)
dict["xxoo"] = &pair{5.0, 2.0}
dict["xxoo"].b = 5.0
登入後複製
  1. 複製或重新分配值: 您可以建立一個複製、修改它,然後將其重新指派給地圖。您也可以將值完全替換為新值。
// Copy and modify
dict := make(map[string]pair)
dict["xxoo"] = pair{5.0, 2.0}
p := dict["xxoo"]
p.b = 5.0
dict["xxoo"] = p

// Replace the value
dict["xxoo"] = pair{5.0, 5.0}
登入後複製

透過了解可尋址性並使用這些技術,您可以有效地修改無法直接尋址的映射值。

以上是如何在 Go 中修改不可尋址的映射值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板