1. 创建和初始化
- New: 创建一个新的 gmap.Map 对象。
m := gmap.New()
- NewFrom: 从已有的 map 初始化一个 gmap.Map 对象。
m := gmap.NewFrom(map[interface{}]interface{}{
"key1": "value1",
"key2": "value2",
})
2. 添加、获取和删除元素
- Set: 设置指定键的值。
m.Set("key", "value")
- Get: 获取指定键的值。
value, ok := m.Get("key")
if ok {
// 存在
fmt.Println("Value:", value)
} else {
// 不存在
fmt.Println("Key not found")
}
- Remove: 移除指定键的元素。
m.Remove("key")
3. 并发安全操作
- LockFunc: 加锁执行指定的函数。
m.LockFunc(func(m map[interface{}]interface{}) {
// 在此函数中对 m 进行读写操作
})
- Lock: 加锁。
m.Lock()
// 在此进行对 m 的读写操作
m.Unlock()
- RLock: 读锁,用于并发安全的读取操作。
m.RLock()
// 在此进行对 m 的读操作
m.RUnlock()
4. 迭代
- Iterator: 迭代所有元素。
m.Iterator(func(key, value interface{}) bool {
// 处理每一个元素,返回 true 继续迭代,返回 false 中断迭代
fmt.Printf("Key: %v, Value: %v\n", key, value)
return true
})
5. 其他方法
- Size: 获取 map 的元素数量。
size := m.Size()
- Clear: 清空 map。
m.Clear()
- Contains: 判断是否包含指定键。
contains := m.Contains("key")
- Keys: 获取所有键组成的切片。
keys := m.Keys()
这些方法覆盖了 gmap.Map 的基本操作,可以满足多数使用场景。使用 gmap 模块,你可以方便地在多协程环境中进行安全的 map 操作。
转载请注明出处:http://www.zyzy.cn/article/detail/7696/GoFrame