姑且译为短量的声明只能是在函数体内吧,听起来有点怪怪的感觉,一如既往地,先来看代码:
package main
myvar := 1 //error
func main() {
}
运行结果:
# command-line-arguments
./hello_world.go:3: non-declaration statement outside function body
go不允许variable := something这种变量的赋值出现在函数体外,但是这种是可以的:
package main
var myvar = 1
func main() {
}
这两种赋值方式有何不同呢?
":=" 是在声明和初始化变量,因此该变量必须是第一次出现, 声明和赋值必须是一气呵成的,不能写成先声明后赋值这种形式,这个必须在函数体内才行。
而var 这种变量声明模式在使用范围上就没有这么严格的限制了,这一点与javascript比较相似。
mark!