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关闭免打扰模式设置【操作】  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?