news 2026/9/16 17:24:34

Golang map取不存在的key时返回零值

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Golang map取不存在的key时返回零值

现象

由于python的字典取不存在的key时会报错,误以为golang也是一样的。其实不然。

原因

golang的map取不存在的key时,并不会报错,而是会返回对应数据类型的零值,例子如下:

package main import "fmt" func main() { m := make(map[string]int) v := m["不存在"] // v = 0 (int 的零值) m2 := make(map[string]string) v2 := m2["不存在"] // v2 = "" (string 的零值) fmt.Printf("v: %v\n", v) fmt.Printf("v2: %v\n", v2) }

运行结果:

golang代码中常见的 value, ok := map[key] 这种写法,就是为了检测 key 是否存在。

这是比较容易犯错的地方,若在golang中取值时不对key是否存在进行判断,落库时拿到的数据格式可能与预期不符合,造成脏数据。这点要好好注意下。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 5:33:09

XGBoost完整安装配置指南:从入门到精通

XGBoost完整安装配置指南:从入门到精通 【免费下载链接】xgboost dmlc/xgboost: 是一个高效的的机器学习算法库,基于 C 开发,提供用于提升分类、回归、排序等任务的性能。 项目地址: https://gitcode.com/gh_mirrors/xg/xgboost XGBoo…

作者头像 李华
网站建设 2026/9/15 5:14:41

OBS面部追踪插件终极指南:打造专业直播画面的5个关键步骤

OBS面部追踪插件终极指南:打造专业直播画面的5个关键步骤 【免费下载链接】obs-face-tracker Face tracking plugin for OBS Studio 项目地址: https://gitcode.com/gh_mirrors/ob/obs-face-tracker OBS面部追踪插件是专为OBS Studio设计的实时面部检测工具&…

作者头像 李华
网站建设 2026/9/10 11:48:31

无线数据通信技术【1.5】

2.5.2 多普勒频移与多普勒衰落当运动的物体达到一定的速度时(如急速行使的汽车、 超音速飞机、 人造卫星在发射等),固定点接收到的从运动体发来的载波频率将随物体运动速度的不同产生不同的频移,导致信号频率扩展,通常…

作者头像 李华
网站建设 2026/9/15 13:22:29

Infinigen完全攻略:从零构建程序化世界的7个关键步骤

Infinigen完全攻略:从零构建程序化世界的7个关键步骤 【免费下载链接】infinigen Infinite Photorealistic Worlds using Procedural Generation 项目地址: https://gitcode.com/gh_mirrors/in/infinigen Infinigen是一款革命性的开源程序化世界生成工具&…

作者头像 李华
网站建设 2026/9/14 5:22:07

告别串口噩梦:打造工业现场的 Modbus 智能通信中枢

摘要:在工业物联网(IIoT)的升级改造中,工程师们常面临一个棘手的“时空错位”:一边是支持高并发、云原生的现代化 SCADA/MES 系统,另一边是躺在控制柜里主要靠串口通信的“古董”设备。如何让 TCP/IP 网络与…

作者头像 李华