【go语言】2.2.2 Map 和 Set

92 阅读1分钟

在 Go 语言中,Map 是一种内置的数据结构,用于存储键值对的集合,类似于其他语言中的哈希表或字典。Set 在 Go 中并没有直接的实现,但可以用 Map 来模拟实现。

Map

Map 的声明和初始化可以用 make 函数,以下是一个声明并初始化一个 Map 的例子:

m := make(map[string]int)

这里 m 是一个 Map,键的类型是 string,值的类型是 int

我们可以使用键值对来填充 Map:

m["Alice"] = 25
m["Bob"] = 30

获取 Map 中的值可以通过键来进行:

age := m["Alice"]
fmt.Println(age)  // 输出 25

删除 Map 中的键值对可以使用 delete 函数:

delete(m, "Alice")

检查一个元素是否在 Map 中,可以通过两值的方式进行接收,第二个值是一个 bool 类型,如果键存在则返回 true,否则返回 false

age, ok := m["Alice"]
if ok {
    fmt.Println(age)
} else {
    fmt.Println("Alice not found")
}

Set

Go 语言中并没有内置的 Set 类型,但是我们可以使用 Map 来模拟 Set。在这个模拟的 Set 中,我们只关心 Map 的键,不关心值。

以下是一个使用 Map 来模拟 Set 的例子:

set := make(map[string]bool)

添加元素到 Set:

set["item1"] = true
set["item2"] = true

检查元素是否在 Set 中:

if _, ok := set["item1"]; ok {
    fmt.Println("item1 exists")
} else {
    fmt.Println("item1 not exists")
}

删除 Set 中的元素:

delete(set, "item1")

以上就是在 Go 语言中使用 Map 和 Set 的基本方式。理解和掌握这些是编写 Go 程序的基础。 推荐阅读:

mp.weixin.qq.com/s/dV2JzXfgj…

mp.weixin.qq.com/s/an83QZOWX…

file