这是允许的:
package main
var a = 3
...
Run Code Online (Sandbox Code Playgroud)
但这不是:
package main
a := 3
...
Run Code Online (Sandbox Code Playgroud)
为什么不?为什么函数外部的短变量声明不能在没有类型的情况下处理常规声明?只是为了简化解析?
引用Go Go编程语言规范:
简短变量声明可能仅出现在函数内部.在某些上下文中,例如"if","for"或"switch"语句的初始化程序,它们可用于声明本地临时变量.
你可以把var喜欢的语句const,type以及func,你必须指定什么样的您声明语句的包级别.
好吧,这不是一个真正的速记, a, b := 12无法编译,var a,b = 12做.