在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Go 语言 中 sync.Map 的 LoadOrStore 函数 表示,如果我们获取的 key 存在,那么就返回 key 对应的元素,如果获取的 key 不存在,那么就返回我们设置的值,并且将我们设置的值,存入 map。 sync.Map LoadOrStore函数语法func (m *Map) LoadOrStore(key, value interface{}) (actual interface{}, loaded bool) 参数
返回值
说明在 map 中获取键为 key 的元素值,如果 key 存在,则将获取的值通过 actual 返回,loaded 返回 true。如果 key 不存在,那么就将 key 和 value 添加加 sync.Map,actual 返回 value,loaded 返回 false。 案例sync.Map LoadOrStore元素存在sync.Map LoadOrStore 元素存在,返回元素值和 ture package main import ( "fmt" "sync" ) func main() { fmt.Println("冰乐(https://www.cnblogs.com/taotaozhuanyong/)") //sync.Map LoadOrStore 元素存在,返回元素值和 ture var mapHaiCoder sync.Map mapHaiCoder.Store("Server", "Golang") mapHaiCoder.Store("JavaScript", "Vue") mapHaiCoder.Store("Db", "Redis") fmt.Println(mapHaiCoder.LoadOrStore("Server", "ServerData")) fmt.Println(mapHaiCoder.LoadOrStore("JavaScript", "JavaScriptData")) } 输出如下: 使用 LoadOrStore 获取 sync.Map 的元素时,如果 KEY 存在,那么返回 KEY 对应的元素值和 ture。 sync.Map LoadOrStore元素不存在sync.Map LoadOrStore 元素不存在,返回设置的元素值和 false package main import ( "fmt" "sync" ) func main() { fmt.Println("冰乐(https://www.cnblogs.com/taotaozhuanyong/)") //sync.Map LoadOrStore 元素不存在,返回设置的元素值和 false var mapHaiCoder sync.Map mapHaiCoder.Store("Server", "Golang") mapHaiCoder.Store("JavaScript", "Vue") mapHaiCoder.Store("Db", "Redis") fmt.Println(mapHaiCoder.LoadOrStore("ServerData", "ServerData")) fmt.Println(mapHaiCoder.LoadOrStore("JavaScriptData", "JavaScriptData")) } 运行如下: 使用 sync.Map LoadOrStore 获取 sync.Map 的 KEY 不存在时,返回设置的元素值和 false。 sync.Map LoadOrStore 元素不存在,添加元素使用 sync.Map Load 获取 KEY 不存在的元素时,会将 key 和 value 添加进 map package main import ( "fmt" "sync" ) func walk(key, value interface{})bool{ fmt.Println("Key =",key, "Value =", value) return true } func main() { fmt.Println("冰乐(https://www.cnblogs.com/taotaozhuanyong/)") //使用 sync.Map Load 获取 KEY 不存在的元素时,会将 key 和 value 添加进 map var mapHaiCoder sync.Map mapHaiCoder.Store("Server", "Golang") mapHaiCoder.Store("JavaScript", "Vue") mapHaiCoder.Store("Db", "Redis") mapHaiCoder.LoadOrStore("ServerData", "ServerData") mapHaiCoder.LoadOrStore("JavaScriptData", "JavaScriptData") mapHaiCoder.Range(walk) } 运行结果如下: 首先,创建了一个三个元素的 sync.Map,接着我们再次使用 LoadOrStore 访问两个 key 都不存在的元素,最后我们使用 Range 遍历所有的元素。 此时,我们发现,使用 LoadOrStore 添加的两个新 KEY 和 VALUE 都存在了 map 中,即使用 LoadOrStore 访问不存在的元素时,元素会被添加进 map。 Go语言sync.Map获取元素总结Go 语言中 sync.Map 的 LoadOrStore 函数表示,如果我们获取的 key 存在,那么就返回 key 对应的元素,如果获取的 key 不存在,那么就返回我们设置的值,并且将我们设置的值,存入 map。 Go 语言 sync.Map LoadOrStore 语法: func (m *Map) LoadOrStore(key, value interface{}) (actual interface{}, loaded bool) 转载自:https://haicoder.net/golang/golang-syncmap-loadorstore.html
|
请发表评论