Home >Backend Development >Golang >The difference between 'var' and ':=' in golang
There are many ways to define variables in the Go language.
Using the var
keyword is the most basic way to define variables in Go. Sometimes :=
is also used to define variables.
Define variables
// 定义一个名称为“variableName”,类型为"type"的变量 // var variableName type var number int
Define variables and initialize values
// 初始化“variableName”的变量为“value”值,类型是“type” // var variableName type = value var number int = 10
Initialize multiple variables at the same time, also called Parallel assignment
/* 定义三个类型都是"type"的变量,并且分别初始化为相应的值 vname1为v1,vname2为v2,vname3为v3 */ // var vname1, vname2, vname3 type = v1, v2, v3 var number1, number2, number3 int = 1, 2, 3
Do you think the above definition is a bit cumbersome? It doesn't matter, because the designers of the Go language also discovered that there is a way to make it simpler. We can directly ignore the type declaration, then the above code becomes like this:
/* 定义三个变量,它们分别初始化为相应的值 vname1为v1,vname2为v2,vname3为v3 然后Go会根据其相应值的类型来帮你初始化它们 */ // var vname1, vname2, vname3 = v1, v2, v3 var number1, number2, number3 = 1, 2, 3
Do you think the above is still a bit cumbersome? Okay, I think so too. Let’s continue simplifying:
/* 定义三个变量,它们分别初始化为相应的值 vname1为v1,vname2为v2,vname3为v3 编译器会根据初始化的值自动推导出相应的类型*/ // vname1, vname2, vname3 := v1, v2, v3 number1, number2, number3 := 1, 2, 3
Doesn’t it look very simple now? :=
This symbol directly replaces var
and type
. This form is called a short statement. However, it has a limitation, that is, it can only be used inside a function; if used outside the function, it will not be compiled, so the var method is generally used to define global variables.
In other words, ":=
" can only be used when declaring "local variables", while "var" does not have this restriction.
Recommended related articles and tutorials: golang tutorial
The above is the detailed content of The difference between 'var' and ':=' in golang. For more information, please follow other related articles on the PHP Chinese website!