多结果的冒号声明赋值,为什么变量名可以相同

weixin_38068013 2019-09-20 09:59:31
...全文
28 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38137880 2019-09-20
  • 打赏
  • 举报
回复
如果我记得不错的话,应该是high和last的问题,不是err的问题
weixin_38076910 2019-09-20
  • 打赏
  • 举报
回复
请问道友, 这段程序能通过编译正常运行?
weixin_38082537 2019-09-20
  • 打赏
  • 举报
回复
自动检查, 没声明的自动声明, 声明过的会忽略, 都声明过了报错, 还跟作用域有关, 自己去查下基础资料吧
weixin_38095546 2019-09-20
  • 打赏
  • 举报
回复
:= 左侧至少有一个是未声明的变量。 也就是说代码 last, err := strconv.Atoi(str[1:]) 中,last 是新声明变量,err只是赋值
weixin_38100924 2019-09-20
  • 打赏
  • 举报
回复
没错
weixin_38112495 2019-09-20
  • 打赏
  • 举报
回复
给你说一个参考资料:《Go程序设计语言》这本书23页有明确的的说明: “一个容易被忽略但重要的地方是:短变量声明不需要声明所有在左边的变量。如果一些变量在同一个词法块中声明,那么对于那些变量,短声明行为等同于赋值” 因此多次出现,第二次以后都相当于赋值了。
weixin_38114673 2019-09-20
  • 打赏
  • 举报
回复
明白了,感谢

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧