package main
var a int
a=2 //给变量a赋值时,居然报错了,是何故?
func main(){
println(a)
}
另外1个申明的问题
package main
func main(){
var a //不能这样申明,与javascript不一样,申明时一定要申明类型吗?
a=2
println(a)
}
有疑问加站长微信联系(非本文作者)

package main
var a int
a=2 //给变量a赋值时,居然报错了,是何故?
func main(){
println(a)
}
另外1个申明的问题
package main
func main(){
var a //不能这样申明,与javascript不一样,申明时一定要申明类型吗?
a=2
println(a)
}
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
`单行代码`
第一个报错是因为println吧=fmt包里的函数。 第二个确实不能如此 var a=2这样可以。
啊 漏看了main=不像C/C++ go没main外这种全局变量吧=同为初学者 可能回答错。
我也是此猜测。那全局变量怎么弄呢?
golang是强类型的,声明变量必须有类型,或者使用类型推导。
全局变量可以使用 var a int = 1
package main import "fmt" var a int = 2 func main(){ fmt.Println(a) }
这样,不用一定声明类型吧,a:=2
果然,这是个要注意的地方。有点小坑,原来强类型语言,就算用var申明变量,也得指定类型
也就是要用全局变量的话,得先初始化,不能var a int;a=2这种方式了
猜测如此,函数外var声明,函数内可以a=2赋值~go果然各种语言大杂烩hhhh
package main a := 2 func main(){ println(a) } 直接在main外面用a := 2,怎么报错:non-declaration statement outside function body,a := 2不就相当于var a=2吗,在main外面用var a=2就没报错,不解了
同不解,只是知道不能这样QAQ或许包外不能用类型推导?
啊 函数外=。=又打错了
是啊,main外用自动推导就不行,这不合理啊。难道用var自动推导比用:=自动推导更好用?
全局的话貌似是 var( a = 2 ) 同为新手,一起学习
var( a = 2 ),这写法也是没见过,不能这样。
打错,还能这样。var()是用于定义多个变量时用的快捷方法吧
我之前看教程的时候说全局有两种嘛,一种是 var 变量名 变量类型; 还有一种就是上述的那种
第一个问题:
你要明白,
定义变量
和赋值语句
是两回事,赋值语句不能放在外面第二个问题:
go是静态类型语言,变量定义的时候必须指定类型(自动推断也算指定类型)
领教了,我把C语言的思维带到go中来了。