# 变量/Variation

# 变量声明

Go 中声明变量用的关键词为var。实际语句为

// 声明一个类型为int的变量n
var n int

# 变量赋值

变量的赋值直接用=即可

var n int
// 给变量n赋值为10
n = 10

# 初始化赋值

也可以在声明变量时,给变量设置初始值。

var n int = 10

# 类型推断

在初始化赋值中,你甚至可以不显式声明类型,Go 会自动根据赋的值判断变量类型

// Go 会把n 认为是int类型
var n = 10

# 声明简写

Go还为我们提供了一种简单的写法——:= 。注意不能省略:号。

n int := 10
// 以下写法跟上方一模一样
var n int = 10

# 常见规范

虽然我们提了很多变量的命名方式,但在社区中目前有一套常见的规范。建议大家还是按规范来比较好。

# 全局变量

全局变量是指直接声明在package下,不是某个函数专用的变量。全局变量必须用var声明。
如果变量没有有初始值,我们要在声明时带上类型。

var a int32

如果变量有初始值,根据是否使用默认类型,分了两种写法:

// 不使用默认类型
var a = 10;
// 使用默认类型
var a = (int32)10

# 局部变量

局部变量通常是函数里,或者具体某代码块中的变量。
同样,如果变量没有有初始值,我们要在声明时带上类型。

var  a int32

如果变量有初始值,根据是否使用默认类型,分了两种写法,局部变量中我们推荐用简写

a := 10
a := (int32)10