ZBLOG

golang Map LoadOrStore功能介绍

Map LoadOrStore 是一个原子操作,它尝试从 map 中加载指定键对应的值。如果该键已经存在,则返回对应的值和 true;否则,将指定的键值对添加到 map 中,并返回新添加的值和 false。

函数签名如下:

func (m Map) LoadOrStore(key, value interface{}) (actual interface{}, loaded bool)

其中,key 表示要查找或添加的键,value 表示要添加的值。actual 表示实际返回的值(可能是新添加的值,也可能是旧的值),loaded 表示该键是否已经存在。

示例代码:

  1. package main
  2. import (
  3. "fmt"
  4. "sync"
  5. )
  6. func main() {
  7. m := sync.Map{}
  8. actual1, loaded1 := m.LoadOrStore("key1", "value1")
  9. fmt.Println(actual1, loaded1) // 输出:value1 false
  10. actual2, loaded2 := m.LoadOrStore("key1", "new_value1")
  11. fmt.Println(actual2, loaded2) // 输出:value1 true
  12. actual3, loaded3 := m.LoadOrStore("key2", "value2")
  13. fmt.Println(actual3, loaded3) // 输出:value2 false
  14. }

在上面的示例中,我们通过 LoadOrStore 添加了两个键值对(”key1”: “value1” 和 “key2”: “value2”)。第一次调用 LoadOrStore 时,由于”key1”不存在,所以会添加一个键值对并返回相应的值和 false;第二次调用 LoadOrStore 时,由于”key1”已经存在,所以不会再添加键值对,而是返回旧的值和 true。最后一次调用 LoadOrStore 时,由于”key2”不存在,所以会添加一个键值对并返回相应的值和 false。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=363

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?