Go 语言中的 Map 类型
Map 是 Go 语言内置的键值对(key-value)哈希集合,属于引用类型,核心作用是通过唯一键快速索引对应值,查询、插入、删除的平均时间复杂度均为O(1),是 Go 开发中最常用的数据结构之一。 1. Map 的基础特性 键唯一性:同一个 Map 中,key 唯一,重复插入会覆盖旧值。 键类型限制:key 必须是可比较类型(int、string、bool、结构体等),切片、map、函数不可作为 key。 无序性:Map 不存储键值对插入顺序,遍历顺序随机(Go 1.12+ 每次遍历顺序不一致)。 零值特性:Map 零值为 nil,nil map 无法写入数据,仅可读取。 引用类型:赋值、传参仅传递引用,多个变量指向同一个底层数据 2. Map 的四种初始化方式 Go 语言 Map 必须初始化后才能写入数据,未初始化的nil map直接写入会触发运行时 panic。以下是所有合法初始化方式。 2.1 声明未初始化(nil map) 仅定义变量,未分配内存,零值为nil,只能读、不能写。 package main import "fmt" func main() { // 声明nil map,未初始化 var m map[string]int fmt.Println(m == nil) // 输出:true // m["a"] = 1 // 报错:panic: assignment to entry in nil map } 2.2 字面量初始化(空 Map/带初始值) 直接初始化并分配内存,支持空 Map 和预设键值对,最常用。 ...