23 映射(Map)之基本操作

在上一篇文章中,我们探讨了如何遍历 map。本篇将围绕 Go 语言中的 map 进行详细讨论,包括定义、添加、删除、修改及查询等基本操作。通过案例,我们将更深入地理解 map 的使用。

什么是 Map?

map 是 Go 语言内置的一种数据结构,用于存储键值对(key-value pairs)。它支持快速的插入、删除和查找操作。每个键都是唯一的。

声明和初始化 Map

在 Go 语言中,可以使用内置的 make 函数来创建一个 map,或者使用字面量(literal)方式初始化。以下是两种方法的示例:

1
2
3
4
5
6
7
8
// 方法1: 使用 make 函数
myMap := make(map[string]int)

// 方法2: 使用字面量初始化
myMap := map[string]int{
"apple": 5,
"banana": 3,
}

在上面的例子中,我们创建了一个 map,键为 string 类型,值为 int 类型。

添加和修改元素

要在 map 中添加或修改元素,可以使用键来直接赋值:

1
2
myMap["orange"] = 4  // 添加新键值对
myMap["apple"] = 10 // 修改已存在的键值对

此时,myMap 的内容为:

1
2
3
4
5
{
"apple": 10,
"banana": 3,
"orange": 4,
}

删除元素

要删除 map 中的某个元素,可以使用 delete 函数:

1
delete(myMap, "banana")  // 删除键为 "banana" 的元素

现在,myMap 将只包含 appleorange

1
2
3
4
{
"apple": 10,
"orange": 4,
}

查询元素

可以通过键来查询 map 中的值。如果键存在,查询操作会返回相应的值;如果不存在,则返回值类型的零值(zero value)。

以下是查询的例子:

1
2
3
4
5
6
value, exists := myMap["apple"]
if exists {
fmt.Println("apple的数量是:", value) // 输出: apple的数量是: 10
} else {
fmt.Println("没有找到apple的数量")
}

在查询中,我们同时获取了一个布尔值 exists,用于检查给定的键是否存在。

遍历 Map

虽然在上一篇我们已经讨论了如何遍历 map,这里再次强调 for 循环的应用:

1
2
3
for key, value := range myMap {
fmt.Printf("%s: %d\n", key, value)
}

这个循环会输出 myMap 中所有的键值对。

小结

在本篇中,我们介绍了 map 的基本操作,包括声明、初始化、添加、修改、删除和查询元素。map 是 Go 语言中高效且灵活的数据结构,适用于需要快速查找、更新的场景。在下一篇文章中,我们将继续探讨结构体与接口的基本使用,了解如何通过结构体定义复杂数据类型。

希望这一部分对你学习 Go 语言的基础有所帮助!如有任何问题,欢迎继续提问。

23 映射(Map)之基本操作

https://zglg.work/go-zero/23/

作者

IT教程网(郭震)

发布于

2024-08-10

更新于

2024-08-11

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论