在 Go 语言中,map
是一种用于存储键值对的集合,类似于其他编程语言中的字典(dictionary)或哈希表(hash table)。键可以是任何可比较类型,值可以是任何类型。map
是一种无序的集合,键和值之间的映射关系通过哈希函数来实现。
以下是使用 map
的一个示例,展示了如何创建、添加、删除以及操作键值对。
Go
package main
import (
"fmt"
"maps"
)
func main() {
// 创建一个空的map
m := make(map[string]int)
// 添加键值对
m["k1"] = 7
m["k2"] = 13
fmt.Println("map:", m)
// 访问map中的值
v1 := m["k1"]
fmt.Println("v1:", v1)
// 尝试访问不存在的键
v3 := m["k3"]
fmt.Println("v3:", v3)
// 查看map的长度
fmt.Println("len:", len(m))
// 删除键值对
delete(m, "k2")
fmt.Println("map:", m)
// 清空map
clear(m)
fmt.Println("map:", m)
// 检查键是否存在
_, prs := m["k2"]
fmt.Println("prs:", prs)
// 使用字面量创建并初始化map
n := map[string]int{"foo": 1, "bar": 2}
fmt.Println("map:", n)
// 比较两个map是否相等
n2 := map[string]int{"foo": 1, "bar": 2}
if maps.Equal(n, n2) {
fmt.Println("n == n2")
}
}