gmap 模块提供了丰富的方法,用于操作并发安全的 map。以下是一些常用的方法介绍:

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