21 Go语言之映射(Map)的定义与使用

在前面的章节中,我们了解了切片的内置函数,以及如何创建和使用切片。在本篇中,我们将探讨Go语言中的另一种数据结构——映射(Map)映射是一种无序的键值对集合,非常适合用于快速查找和数据关联。

1. 定义映射(Map)

在Go语言中,映射的基本定义如下:

1
map[键类型]值类型

的类型可以是任何可以比较的类型(例如,整型、字符串、数组等),而的类型可以是任何类型,包括其他映射切片或自定义结构体等。

1.1 创建映射

Go语言提供了两种创建映射的方式:

  1. 使用make函数创建:

    1
    m := make(map[string]int)
  2. 使用字面量创建:

    1
    m := map[string]int{"apple": 1, "banana": 2}

2. 使用映射

在创建了映射之后,可以通过来访问对应的。如果键不存在于映射中,将返回相应值类型的零值。

2.1 添加和更新值

要向映射中添加键值对或更新现有的值,可以使用赋值语句:

1
2
m["orange"] = 3 // 添加新键值对
m["apple"] = 4 // 更新已有键的值

2.2 读取值

从映射中读取值时,可以使用如下方式:

1
val := m["apple"] // val 现在是 4

你还可以使用多重赋值的方式来检查键是否存在:

1
2
3
4
5
6
val, exists := m["banana"]
if exists {
fmt.Println("香蕉的数量:", val)
} else {
fmt.Println("香蕉不存在")
}

2.3 删除值

可以使用delete函数从映射中删除键值对:

1
delete(m, "banana") // 删除键为"banana"的键值对

2.4 示例代码

以下是一个简单的完整示例,展示了如何使用映射

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package main

import "fmt"

func main() {
// 创建一个映射
fruitCount := make(map[string]int)

// 添加键值对
fruitCount["apple"] = 1
fruitCount["banana"] = 2

// 更新值
fruitCount["apple"] = 4

// 读取值
val, exists := fruitCount["apple"]
if exists {
fmt.Println("苹果的数量:", val)
} else {
fmt.Println("苹果不存在")
}

// 删除值
delete(fruitCount, "banana")

// 打印所有映射的内容
fmt.Println("水果数量映射:", fruitCount)
}

在这个示例中,我们创建了一个存储水果数量的映射,并展示了如何添加、更新、读取和删除映射中的数据。

3. 总结

映射(Map)是Go语言中非常强大的数据结构,通过键值对的形式来存储和管理数据。在本篇中,我们详细探讨了映射的定义、创建、使用以及基本操作。这为下一篇关于遍历map的内容打下了基础。

在下篇中,我们将探索如何对映射进行遍历,以获取所有的键值对。请继续关注!

21 Go语言之映射(Map)的定义与使用

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

作者

IT教程网(郭震)

发布于

2024-08-10

更新于

2024-08-11

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论