前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go避坑: Go语言之变量覆盖坑(Shadowed variables)

Go避坑: Go语言之变量覆盖坑(Shadowed variables)

作者头像
崔认知
发布2023-06-20 12:03:05
2030
发布2023-06-20 12:03:05
举报
文章被收录于专栏:nobodynobody

简介


Go语言提供了短声明变量的形式,即使用赋值运算符 := ,它允许对已经赋值的变量再次赋值。但是不同的作用域下,短声明变量的形式存在变量覆盖的坑。

Go之变量覆盖


先看示例:

在运行之前大家可以猜猜输出结果是什么... ... ?

真实的运行结果为:

代码语言:javascript
复制
10
100
1000
100
10

当代码块内部具有与代码块外部相同的变量名时,代码块内部的变量会覆盖代码块外部的变量。

如何检测变量覆盖


赋值运算符 :=存在变量覆盖,会给开发者带来一些不易察觉的bug(坑),所以最好能确保我们写的程序中不存在这一现象(Go为啥提供了这么一个功能呢),为了自动化检测这种情况,我们可以使用golangci-lint静态代码扫描工具。

小结


Go语言提供了短声明变量的形式,即使用赋值运算符 := ,存在变量覆盖的坑,我们可以使用golangci-lint静态代码扫描工具检测。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 认知科技技术团队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云代码分析
腾讯云代码分析(内部代号CodeDog)是集众多代码分析工具的云原生、分布式、高性能的代码综合分析跟踪管理平台,其主要功能是持续跟踪分析代码,观测项目代码质量,支撑团队传承代码文化。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档