golang--sync.map(安全字典)
sync.Map
是 Go 语言标准库 sync
包中的一个并发安全的映射(map)类型。它提供了三个主要的方法来安全地进行键值对的存储与检索:
Store(key, value interface{})
: 存储键值对。Load(key interface{}) (value interface{}, ok bool)
: 根据键检索值。Delete(key interface{})
: 删除键值对。
此外,sync.Map
还提供了一个 Range()
方法,用于遍历所有的键值对。
下面是一个简单的使用 sync.Map
的例子:
package main
import (
"fmt"
"sync"
)
func main() {
var m sync.Map
// 存储键值对
m.Store("key1", "value1")
m.Store("key2", "value2")
// 加载键值对
value, found := m.Load("key1")
if found {
fmt.Println(value) // 输出: value1
}
// 删除键值对
m.Delete("key2")
// 遍历所有键值对
m.Range(func(key, value interface{}) bool {
fmt.Printf("Key: %v, Value: %v\n", key, value)
return true // 返回 true 继续遍历,返回 false 停止遍历
})
}
在这个例子中,我们首先创建了一个 sync.Map
的实例 m
。然后,我们使用 Store()
方法来存储键值对。接着,我们使用 Load()
方法来检索键对应的值。然后,我们使用 Delete()
方法来删除一个键值对。最后,我们使用 Range()
方法来遍历所有的键值对。
评论已关闭