我有以下代碼行: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 回答

白板的微信
TA貢獻1883條經驗 獲得超3個贊
sync.Map不是 Go map,所以你不能使用a_map["key"]它的語法。相反,它是一個struct提供通常映射操作的 with 方法。使用它的語法是:
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 關注
- 259 瀏覽
添加回答
舉報
0/150
提交
取消