【Golang map并发报错】panic: assignment to entry in nil map

发布时间:2024年01月11日

go并发写map[string]interface{}数据的时候,报错:panic: assignment to entry in nil map

多个key同时操作一个map时,如:

test[key1] = 1

test[key2] = "a"

test[key3] = true

就会遇到并发nil值报错,什么test[key-xxx] = make()根本不行。

用异步sync.Map解决:

// map[string]interface{} 全局配置(自定义)参数。读写
var syncMapInterface sync.Map

// SetGlobalMapInterface 新增或更新
func SetGlobalMapInterface(key string, value interface{}) {
	syncMapInterface.Store(key, value)
}

// GetGlobalMapInterface 读取
func GetGlobalMapInterface(key string) interface{} {
	back, _ := syncMapInterface.Load(key)
	return back
}

// DelGlobalMapInterface 删除
func DelGlobalMapInterface(key string) interface{} {
	syncMapInterface.Delete(key)
	back, _ := syncMapInterface.Load(key)
	return back
}

Lock锁那个比较麻烦,不建议使用。推荐使用sync.Map。

文章来源:https://blog.csdn.net/weixin_41827162/article/details/135530540
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。