# Golang Map

# 一、Golang Map 简介

Map 是 Go 中的内置类型,它将一个值与一个键关联起来。可以使用相应的键检索值。

Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。

Map 是一种集合,所以我们可以像迭代数组和切片那样迭代它。不过,Map 是无序的,我们无法决定它的返回顺序,这是因为 Map 是使用 hash 表来实现的,也是 引用类型

使用 Map 过程中需要注意的几点:

  • Map 是无序的,每次打印出来的 Map 都会不一样,它不能通过 index 获取,而必须通过 key 获取
  • Map 的长度是不固定的,也就是和 slice 一样,也是一种 引用类型
  • 内置的 len 函数同样适用于 Map,返回 Map 拥有的 key 的数量
  • Map 的 key 可以是所有可比较的类型,如布尔型、整数型、浮点型、复杂型、字符串...

# 二、Golang Map 使用

# 1. map 格式

map[key_type]value_type

# 2. map 创建

m := make(map[string]string)

# 3. map 设值

map["key"] = "value"

# 4. map 取值

value, ok := map["key"]  //o k表示是否有值

# 5. map 遍历

for k, v := range m {
  	//...
}

# 6. map 删除

delete(m, "key")

# 三、Golang Map 原理

Golang 版本:Go1.16

源码地址:https://github.com/golang/go/blob/master/src/runtime/map.go

参考:https://qcrao91.gitbook.io/go/map/map-de-di-ceng-shi-xian-yuan-li-shi-shi-mo

上次更新: 7/27/2021, 6:41:10 PM