Go语言map是无序键值对集合,支持高效增删查;创建方式有make、字面量和nil声明;查询支持零值返回和存在性判断;删除用delete函数,安全但遍历时需谨慎。

Go语言中的map类型是一种无序的键值对集合,类似于其他语言中的字典或哈希表。它支持高效的查找、插入和删除操作。本文将介绍如何在Golang中创建map、进行元素查询以及删除操作,帮助你快速掌握map的基本用法。
创建map的三种方式
在Go中,有多种方式可以创建一个map,常用的方式包括使用内置的make函数、字面量初始化,以及声明nil map。
注意:未初始化的map为nil,不能直接赋值。- 使用 make 函数:mapVar := make(map[string]int) —— 创建一个string为键、int为值的空map
- 使用字面量:mapVar := map[string]int{"apple": 1, "banana": 2} —— 同时初始化键值对
- 声明但不初始化:var mapVar map[string]string —— 此时map为nil,需配合make才能使用
查询map中的值
通过键来访问map中的值是最常见的操作。Go提供了安全的查询方式,可以同时获取值和判断键是否存在。
- 基础查询:value := mapVar["key"] —— 如果键不存在,返回对应类型的零值(如int为0,string为空)
- 安全查询:value, exists := mapVar["key"] —— exists 是bool类型,可判断键是否存在
- 常用于条件判断:if val, ok := mapVar["name"]; ok { ... } 避免误用零值
删除map中的元素
Go提供内置 delete 函数用于从map中移除指定键值对。该操作不会返回任何值。
立即学习“go语言免费学习笔记(深入)”;
- 语法:delete(mapVar, "key") —— 删除键为"key"的条目
- 即使键不存在,delete也不会报错,是安全操作
- 删除后再次查询该键,exists会返回false,value为零值
- 遍历中删除需谨慎,建议先收集键再删除,避免并发修改问题
基本上就这些。map是Go中非常实用的数据结构,掌握创建、查询和删除操作是日常开发的基础。只要注意初始化和存在性判断,就能避免常见错误。不复杂但容易忽略细节。










