我有以下代碼行:var a_map = make(map[string] []int)我的部分代碼使用 a_map 變量,偶爾會拋出以下錯誤:fatal error: concurrent map read and map write為了嘗試創建一種更強大的解決方案(沒有此類錯誤的解決方案),我想使用sync.Map而不是通用地圖。我這樣做的靈感來自于這個堆棧溢出問題提供的唯一答案。但是,我不清楚這樣做的正確語法。在我的第一次嘗試中,我使用了以下代碼行:var a_map = make(sync.Map[string] []int)這導致了以下錯誤:...syntax error: unexpected ], expecting expression然后我嘗試: sync_map := new(sync.Map) var a_map = make(sync_map[string] []int)這導致了同樣的錯誤:...syntax error: unexpected ], expecting expression
1 回答

慕工程0101907
TA貢獻1887條經驗 獲得超5個贊
sync.Map
不是 Go?map
,因此您不能使用a_map["key"]
它的語法。相反,它是struct
提供常用地圖操作的方法。使用它的語法是:
var?m?sync.Map m.Store("example",?[]int{1,?2,?3}) fmt.Println(m.Load("example"))?//?[1?2?3]?true
--?https://play.golang.org/p/7rbEG_x0mrC
根據并發源,您可能需要每個鍵下的 []int 值進行類似的同步,但sync.Map 不會為您提供這種同步。sync.Map 僅提供每個鍵的加載/存儲同步。
- 1 回答
- 0 關注
- 268 瀏覽
添加回答
舉報
0/150
提交
取消