Home >Backend Development >Golang >The difference between 'var' and ':=' in golang

The difference between 'var' and ':=' in golang

王林
王林Original
2019-12-24 17:11:236807browse

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn