我是Go编程语言的新手。
我注意到Go中有一些奇怪的地方:我认为它在Python中使用:=并替代=了,但是当我=在Go中使用时,它也是可行的。
:=
=
:=和之间有什么区别=?
=是分配。有关Go中分配的更多信息:分配
=和在变量声明中使用:=时的细微差别=。
Go中变量声明的一般形式是:
var name type = expression
上面的声明创建一个特定类型的变量,为其添加名称,并设置其初始值。 无论是type或= expression可以省略,但不能同时使用。
type
= expression
例如:
var x int = 1 var a int var b, c, d = 3.14, "stackoverflow", true
:=被称为short variable declaration采取形式
short variable declaration
name := expression
名称的类型取决于表达式的类型
请注意: := 是声明,而是=赋值
因此,简短的变量声明必须声明 至少一个新变量 。这意味着简短的变量声明并不一定要在其左侧声明所有变量,当其中一些变量已在同一词法块中声明后,:=就像对这些变量的赋值一样
r := foo() // ok, declare a new variable r r, m := bar() // ok, declare a new variable m and assign r a new value r, m := bar2() //compile error: no new variables
此外,:=可能仅出现在函数内部。在某些情况下,例如“ if”,“ for”或“ switch”语句的初始化程序,它们可用于声明局部临时变量。
更多信息:
变量声明
简短的变量声明