为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在 Go 的包级别不允许短变量声明?

为什么在 Go 的包级别不允许短变量声明?

Go
慕妹3146593 2021-06-22 05:20:21
这是允许的:package mainvar a = 3...但这不是:package maina := 3...为什么不?为什么不能将函数外的短变量声明视为没有类型的常规声明?只是为了简化解析?
查看完整描述

3 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

根据伊恩·兰斯·泰勒 (Ian Lance Taylor) 在公开声明后不久在此线程中的说法:

在顶层,每个声明都以关键字开头。这简化了解析。


查看完整回答
反对 回复 2021-06-28
?
翻阅古今

TA贡献1780条经验 获得超5个赞

引用Go 编程语言规范

短变量声明只能出现在函数内部。在某些上下文中,例如“if”、“for”或“switch”语句的初始值设定项,它们可用于声明局部临时变量。

您可以考虑varconsttype, andfunc之类的语句,在包级别中,您必须指定要声明的语句类型。

嗯,这不是一个真正的速记, a, b := 12不能编译,var a,b = 12做。


查看完整回答
反对 回复 2021-06-28
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

在函数外部,每个语句都必须以关键字(var、func 等)开头,因此该:=构造不可用。

这里。希望能帮助到你。


查看完整回答
反对 回复 2021-06-28
  • 3 回答
  • 0 关注
  • 228 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信