在 GoFrame 中,gmap 是一个提供了键值对映射的实用工具库。它的功能类似于 Go 语言中的 map 类型,但提供了更多的便利方法和安全检查。以下是 gmap 的基本介绍:

导入 gmap 包

要使用 gmap,你首先需要导入 github.com/gogf/gf/container/gmap 包。
import "github.com/gogf/gf/container/gmap"

创建和初始化 gmap
// 创建一个空的 gmap
m := gmap.New()

// 使用键值对初始化 gmap
m := gmap.NewFromMap(map[interface{}]interface{}{
    "key1": "value1",
    "key2": "value2",
})

基本操作
// 设置键值对
m.Set("key", "value")

// 获取键的值
value := m.Get("key")

// 删除指定键值对
m.Remove("key")

// 检查键是否存在
exists := m.Contains("key")

// 获取所有的键
keys := m.Keys()

// 获取所有的值
values := m.Values()

// 获取键值对的数量
size := m.Size()

// 清空 gmap
m.Clear()

迭代操作
// 遍历 gmap
m.Iterator(func(k, v interface{}) bool {
    // 处理每个键值对
    fmt.Println(k, v)
    return true // 如果返回false,则停止迭代
})

// 使用键的顺序遍历 gmap
m.IteratorOrdered(func(k, v interface{}) bool {
    // 处理每个键值对
    fmt.Println(k, v)
    return true // 如果返回false,则停止迭代
})

安全并发操作
// 安全地并发读取
value, ok := m.GetSafe("key")

// 安全地并发设置
m.SetIfNotExist("key", "value")

其他方法
// 获取键的值,如果键不存在,则返回默认值
value := m.GetOrSet("key", "default")

// 如果键不存在,则设置键值对,返回之前的值
oldValue := m.SetIfNotExist("key", "value")

// 在原值基础上增加或减少
m.Increase("key", 10)
m.Decrease("key", 5)

以上是一些常用的 gmap 操作示例。gmap 提供了丰富的方法来操作键值对映射,可以方便地进行数据存储和检索。详细的使用方法可以查阅 GoFrame 的官方文档或源代码。


转载请注明出处:http://www.zyzy.cn/article/detail/7694/GoFrame