Go语言字典(map)用法实例分析【创建,填充,遍历,查找,修改,删除】
发布时间 - 2026-01-10 23:15:18 点击率:次本文实例讲述了Go语言字典(map)用法。分享给大家供大家参考,具体如下:

字典是一种内置的数据结构,用来保存 键值对 的 无序集合。
(1)字典的创建
1) make(map[KeyType]ValueType, initialCapacity)
2) make(map[KeyType]ValueType)
3) map[KeyType]ValueType{}
4) map[KeyType]ValueType{key1 : value1, key2 : value2, ... , keyN : valueN}
如下,用4种方式分别创建数组,其中第一种和第二种的区别在于,有没有指定初始容量,不过使用的时候则无需在意这些,因为map的本质决定了,一旦容量不够,它会自动扩容:
复制代码 代码如下:func test1() {
map1 := make(map[string]string, 5)
map2 := make(map[string]string)
map3 := map[string]string{}
map4 := map[string]string{"a": "1", "b": "2", "c": "3"}
fmt.Println(map1, map2, map3, map4)
}
输出:
map[] map[] map[] map[c:3 a:1 b:2]
(2)字典的填充和遍历:for range
复制代码 代码如下:func test2() {
map1 := make(map[string]string)
map1["a"] = "1"
map1["b"] = "2"
map1["c"] = "3"
for key, value := range map1 {
fmt.Printf("%s->%-10s", key, value)
}
}
如上,数组的填充使用 map[key] = value 的方式,遍历字典的时候,每一项都返回2个值,键 和 值。结果如下:
a->1 b->2 c->3
(3)字典的查找、修改和删除:delete()
复制代码 代码如下:func test3() {
map4 := map[string]string{"a": "1", "b": "2", "c": "3"}
val, exist := map4["a"]
val2, exist2 := map4["d"]
fmt.Printf("%v,%v\n", exist, val)
fmt.Printf("%v,%v\n", exist2, val2)
map4["a"] = "8" // 修改字典和添加字典没什么区别
fmt.Printf("%v\n", map4)
fmt.Println("删除b:")
delete(map4, "b")
fmt.Printf("%v", map4)
}
map指定key取对应的value时,可以指定返回两个值,第一个是对应的value,第二个是一个bool,表示是否有值。如上,“a”肯定有值,“b”肯定没值。
修改字典和添加字典的操作没什么区别,若指定的键不存在则创建,否则,修改之。
删除则是使用go的内置函数 delete(),输出如下:
true,1 false, map[a:8 b:2 c:3] 删除b: map[a:8 c:3]
访问字典,比较安全的做法:
复制代码 代码如下:map4 := map[string]string{"a": "1", "b": "2", "c": "3"}
val, exist := map4["d"]
if exist {
fmt.Println(val)
} else {
fmt.Println("not exists")
}
希望本文所述对大家Go语言程序设计有所帮助。
# Go语言
# 字典
# map
# 创建
# 填充
# 遍历
# 查找
# 修改
# 删除
# 浅析go中的map数据结构字典
# go语言map字典删除操作的方法
# Go语言map字典用法实例分析
# Go中的字典Map增删改查、排序及其值类型
# 是一个
# 没什么
# 是一种
# 第一个
# 则是
# 数据结构
# 第二个
# 给大家
# 不存在
# 它会
# 所述
# 第二种
# 第一种
# 键值
# 每一项
# 决定了
# 讲述了
# initialCapacity
# br
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
Laravel storage目录权限问题_Laravel文件写入权限设置
如何实现javascript表单验证_正则表达式有哪些实用技巧
进行网站优化必须要坚持的四大原则
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
如何在阿里云服务器自主搭建网站?
Laravel怎么在Controller之外的地方验证数据
奇安信“盘古石”团队突破 iOS 26.1 提权
Linux系统运维自动化项目教程_Ansible批量管理实战
如何在腾讯云服务器上快速搭建个人网站?
在centOS 7安装mysql 5.7的详细教程
如何在新浪SAE免费搭建个人博客?
如何快速查询网站的真实建站时间?
如何在景安云服务器上绑定域名并配置虚拟主机?
Laravel如何优化应用性能?(缓存和优化命令)
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
Laravel如何处理CORS跨域请求?(配置示例)
laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化
HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
Mybatis 中的insertOrUpdate操作
HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】
浅谈Javascript中的Label语句
C#如何调用原生C++ COM对象详解
如何快速搭建自助建站会员专属系统?
高端建站如何打造兼具美学与转化的品牌官网?
如何用西部建站助手快速创建专业网站?
Win11怎么设置虚拟桌面 Win11新建多桌面切换操作【技巧】
济南网站建设制作公司,室内设计网站一般都有哪些功能?
个人网站制作流程图片大全,个人网站如何注销?
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
Thinkphp 中 distinct 的用法解析
如何快速搭建二级域名独立网站?
百度输入法ai组件怎么删除 百度输入法ai组件移除工具
如何用狗爹虚拟主机快速搭建网站?
敲碗10年!Mac系列传将迎来「触控与联网」双革新
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
如何做网站制作流程,*游戏网站怎么搭建?
Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
Laravel如何实现一对一模型关联?(Eloquent示例)
Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?

